本文介紹使用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. | 未找到指定的鏡像,或者該鏡像不屬於您配置的賬戶。 |