本文介绍使用faascmd工具时常见的问题与解决办法。
常见问题
出现“Name Error:global name 'ID' is not defined.”错误,怎么办?
可能原因:faascmd没有获取到您的AccessKey ID或AccessKey Secret信息。
解决方案:执行faascmd config
命令,此命令执行后,会将您输入的AccessKey ID和AccessKey Secret信息保存在文件/home/user1/.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 config
和faascmd 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. | 输入参数有误。 |
|
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相关权限。 |
|
401 | IMAGE NUMBER EXCEED | The user is allowed to have no more than 30 images. | 镜像列表不能超过30个镜像,请删除不需要的镜像后重试。 |
|
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。 |
|
401 | NOT AUTHORIZED | You are not allowed to access this instance. | 当前用户没有访问该实例的权限,请检查授权策略是否包含访问DescribeInstances接口的权限。 |
|
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,请检查输入参数。 |
|
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状态。 |
|
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状态。 |
|
404 | FPGA IMAGE NOT FOUND | The specify fpga image does not found. | 未找到指定的镜像,或者该镜像不属于您配置的账户。 |