本文介绍使用faascmd工具时常见的问题与解决办法。

出现“Name Error:global name'ID' is not defined. ”错误时,怎么办?

错误原因:faascmd没有获取到您的AccessKeyID或AccessKeySecret信息。

解决办法:执行faascmd config命令,此命令执行后,会将您输入的AccessKeyID和AccessKeySecret信息保存在文件/root/.faascredentials中。

出现“SDK.InvalidRegionId. Can not find endpoint to access.”错误时,怎么办?

错误原因:获取不到faas服务的endpoint地址。

解决办法:您需要逐项检查是否满足以下配置。
  • 运行python -V命令检查python版本是否为2.7.x。
  • 运行which python命令检查python的默认安装路径是否为/usr/bin/python
  • 运行cat /usr/lib/python2.7/site-packages/aliyunsdkcore/__init__.py命令检查aliyunsdkcore版本是否为2.11.0及以上。
    说明 如果aliyunsdkcore版本号低于2.11.0,您需要运行 pip install --upgrade aliyun-python-sdk-core命令升级至最新版本。

出现“HTTP Status: 404 Error: EntityNotExist. Role Error. The specified Role not exists . ”错误时,怎么办?

错误原因:您云账户下的AliyunFAASDefaultRole角色不存在。

解决办法: 登录 RAM控制台查看AliyunFAASDefaultRole角色是否存在。
  • 如果AliyunFAASDefaultRole角色不存在,您需要执行faascmd configfaascmd auth命令创建该角色并为其授权。
  • 如果AliyunFAASDefaultRole角色存在,请提交工单处理。

下载FPGA镜像时返回“HTTP Status:404 Error:SHELL NOT MATCH. The image Shell is not match with fpga Shell!Request ID:D7D1AB1E-8682-4091-8129-C17D54FD10D4”错误,怎么办?

错误原因:要下载的fpgaImage和指定fpga上的Shell版本不匹配。

解决办法:您需要按下列步骤逐项检查。
  • 运行faascmd list_instances --instance=xxx命令检查当前fpga的Shell版本号。
  • 运行faascmd list_images命令检查指定的fpgaImage的Shell版本号。
    说明
    • 如果以上两个Shell版本号不同,您需要重新制作一个与fpga的Shell版本号相同的fpgaImage,然后下载。
    • 如果确定两个Shell版本一致,请提交工单。

下载FPGA镜像时返回“HTTP Status:503 Error:ANOTHER TASK RUNNING . Another task has not finished yet, please retry later! Request ID: 5FCB6F75-8572-4840-9BDC-87C57174F26D”错误,怎么办?

错误原因:您之前提交的下载请求异常失败或中断导致fpga的状态还停留在operating状态。

解决办法:建议您等待10分钟,直至下载任务自动结束,然后再次提交下载镜像请求。
说明 如果问题仍旧没有解决,请提交工单。

运行faascmd list_images命令时,发现镜像状态是failed,怎么办?

您可以通过以下方式获取编译日志,以定位相关错误。
faascmd list_objects|grep vivado
faascmd get_object --object=<YourObjectName> --file=<YourLocalPath>/vivado.log  #路径选填,默认下载到当前文件夹。

常见错误码

HttpCode 错误码 错误信息 描述 适用范围
400 PARAMETER INVALIDATE Specify parameters are invalid. 输入参数有误。
  • 所有faascmd命令
  • 所有API
500 InternalError The request processing has failed due to some unknown error. 未知错误,请提交工单。
404 InvalidProduct.NotFound Cannot find product according to your specified domain. FaaS产品不存在,请检查Python Core SDK的endpoints配置是否正确。
404 InvalidAccessKeyId.NotFound Specified access key is not found. 请检查您调用命令或API时是否使用了正确的AccessKeyId。
400 InvalidAccessKeyId.Inactive Specified access key is disabled. 请检查您指定的AccessKey是否可用。
400 InvalidSecurityToken.Expired Specified SecurityToken is expired. 请检查SecurityToken是否可用。
400 InvalidSecurityToken.Malformed Specified SecurityToken is malformed. 请检查SecurityToken是否可用。
400 InvalidSecurityToken.MismatchWithAccessKey Specified SecurityToken mismatch with the AccessKey. 请检查SecurityToken是否可用。
403 NoPermisson You are not authorized to do this action. 子账号没有RAM相关权限。
  • faascmd命令:auth
  • API:auth
401 IMAGE NUMBER EXCEED The user is allowed to have no more than 30 images. 镜像列表不能超过30个镜像,请删除不需要的镜像后重试。
  • faascmd命令:create_image
  • API:CreateFpgaImage
503 FREQUENCY ERROR CreateFpgaImage task is allowed to take every half an hour. 如果已经提交了制作镜像请求,无论镜像是否制作成功,至少30分钟后才可以提交下个制作镜像请求。
404 SHELL NOT SUPPORT The shellUUID is not supported, please check your input shellUUID. 您输入的Shell版本不支持,请检查Shell版本是否正确。
404 EntityNotExist.RoleError The specified Role not exists. 您的账户没有创建AliyunFAASDefaultRole角色。
403 AccessDeniedError The bucket you visit does not belong to you. FaaS服务角色未被授予访问当前Bucket的权限。
403 CALLER TYPE NOT SUPPORT The callerType is not supported, please use sub user's AK. 目前只支持使用子账号类型的身份凭证。
404 NoSuchBucketError The specified bucket does not exist. 未找到指定的OSS Bucket,请检查Bucket名称是否配置正确。
404 OSS OBJECT NOT FOUND The specified oss object does not exist. 指定的OSS Object不存在,或者您没有授权FaaS RAM角色访问该Object的权限。
404 IMAGE NOT FOUND The specify image does not found. 未找到指定的fpgaImage。
  • faascmd命令:delete_image
  • API:
    • DeleteFpgaImage
    • DeletePublishFpgaImage
401 NOT AUTHORIZED You are not allowed to access this instance. 当前用户没有访问该实例的权限,请检查授权策略是否包含访问DescribeInstances接口的权限。
  • faascmd命令:list_instances
  • API:DescribeFpgaInstances
403 CALLER TYPE NOT SUPPORT The callerType is not supported. 用户身份凭证目前只支持RAM子账号的AK/SK和临时凭证STS Token。
404 INSTANCE INVALIDATE The instance you specify is not FPGA type. 您指定的实例不是fpga实例。如果您确定是fpga实例,请提交工单。
401 NOT AUTHORIZED You are not allowed to access this instance. 找不到指定的实例ID,请检查输入参数。
  • faascmd命令:fpga_status
  • API:DescribeLoadTaskStatus
404 FPGA NOT FOUND The fpga you specify is not found. 找不到指定的fpgauuid,请检查输入参数。
503 ANOTHER TASK RUNNING Another task is running, user is allowed to take this task half an hour. 您之前提交的下载镜像任务还在operating状态。
  • faascmd命令:download_image
  • API:LoadFpgaImage
401 IMAGE ACCESS ERROR You are not allowed to access this fpga image. 指定的镜像不属于您配置的账户。
401 YOU HAVE NO ACCESS TO THIS INSTANCE You are not allowed to access this instance. 指定的实例不属于您配置的账户。
404 IMAGE NOT FOUND The fpga image you specify is not found. 未找到您指定的fpgaImage。
404 FPGA NOT FOUND The fpga you specify is not found. 未找到您指定的fpga实例。
404 SHELL NOT MATCH The imageShell is not match with fpgaShell. 镜像的Shell版本与指定的fpga实例上的Shell版本不匹配。
403 ASSUME ROLE USER NOT SUPPORT AssumeRoleUser only support loading market fpga images. 使用STS Token认证只允许下载市场镜像。
404 Image not in success state The fpga image you specify is not in success state. 指定的镜像不是success状态。您只能下载success状态的镜像。
404 FPGA IMAGE STATE ERROR The specify fpga image is not in success state. 指定的镜像不是success状态。
  • faascmd命令:publish_image
  • API:PublishFpgaImage
404 FPGA IMAGE NOT FOUND The specify fpga image does not found. 未找到指定的镜像,或者该镜像不属于您配置的账户。