本文介紹使用faascmd工具時常見的問題與解決辦法。
常見問題
-
Name Error:global name'ID' is not defined.
原因:faascmd沒有擷取到您的AccessKeyID或AccessKeySecret資訊。
解決辦法:執行
faascmd config
命令,此命令執行後,會將您輸入的AccessKeyID和AccessKeySecret資訊儲存在檔案/root/.faascredentials
中。 -
HTTP Status:403 Error:RoleAccessError. You have no right to assume this role.
原因:faascmd沒有擷取到roleArn資訊,或者roleArn資訊與當前的AccessKeyID和AccessKeySecret資訊不屬於同一個賬戶。
解決辦法:檢查
/root/.faascredentials
檔案是否包含以下資訊。[FaaSCredentials] accessid=xxxxxxxxxx accesskey=xxxxxxxxxxxxxxxxxxxxxxx [Role] role=acs:ram::1234567890123456:role/xxxxxx [OSS] bucket=xxxx
说明- 如果上述資訊存在,確認該role資訊與AccessKeyID/AccessKeySecret的雲ID是否一致。
- 如果上述資訊不存在,執行
faascmd auth bucket=xxxx
命令授權。
-
HTTP Status: 404 Error: EntityNotExist. Role Error. The specified Role not exists .
原因:您的雲賬戶下的faasrole角色不存在。
解決辦法: 登陸RAM控制台查看faasrole角色是否存在。- 如果faasrole角色不存在,您需要執行
faascmd config
和faascmd auth
命令建立該角色並為其授權。 - 如果faasrole角色存在,請提交工單處理。
- 如果faasrole角色不存在,您需要執行
-
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: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版本一致,請提交工單。
-
-
下載鏡像時返回HTTP Status:503 Error:ANOTHER TASK RUNNING . Another task is running,user is allowed to take this task half an hour Request ID: 5FCB6F75-8572-4840-9BDC-87C57174F26D
原因:您之前提交的下載請求異常失敗或中斷導致fpga的狀態還停留在operating狀態。
解決辦法:建議您等待10分鐘,直至下載任務自動結束,然後再次提交下載鏡像請求。
说明 如果問題仍舊沒有解決,請提交工單。 -
運行faascmd list_images命令時,發現鏡像狀態是failed。
解決方案:您可以通過以下方式擷取編譯日誌,以定位相關錯誤。
faascmd list_objects|grep vivado faascmd get_object --obejct=<yourObjectName> --file=<your_local_path>/vivado.log #路徑選填,預設下載到當前檔案夾。
常見錯誤碼
faascmd命令 | API名字 | 錯誤資訊 | 錯誤描述 | 錯誤碼 |
---|---|---|---|---|
適用所有命令 | 適用所有API | PARAMETER INVALIDATE | 輸入參數有誤。 | 400 |
適用所有命令 | 適用所有API | InternalError | 未知錯誤,提交工單。 | 500 |
auth | auth | NoPermisson | 沒有訪問某個openAPI的許可權。 | 403 |
create_image | CreateFpgaImage | IMAGE NUMBER EXCEED | 鏡像列表不能超過10個鏡像,刪除不需要的鏡像即可。 | 401 |
FREQUENCY ERROR | 目前提交鏡像請求的時間間隔為30min一次。 | 503 | ||
SHELL NOT SUPPORT | 輸入的shell版本不支援,請檢查shell版本是否正確。 | 404 | ||
EntityNotExist.RoleError | 使用者賬戶沒有建立faasRole。 | 404 | ||
RoleAccessError | 使用者輸入的roleArn為空白,或者roleArn資訊與AccessKey ID/AccessKey Secret不屬於同一個雲帳號。 | 403 | ||
InvalidAccessKeyIdError | AccessKey ID/AccessKey Secret不合法。 | 401 | ||
Forbidden.KeyNotFoundError | 找不到指定的KMS key,請登陸KMS控制台檢查輸入的keyId是否存在。 | 503 | ||
AccessDeniedError | faas admin 賬戶沒有訪問當前bucket的許可權。 | |||
OSS OBJECT NOT FOUND | 指定的oss bucket/object不存在,或者不具備存取權限。 | 404 | ||
delete_image | DeleteFpgaImage | IMAGE NOT FOUND | 指定的fpgaImage找不到。 | 400 |
list_instances | DescribeFpgaInstances | NOT AUTHORIZED | 指定的instance不存在或者不屬於當前的雲賬戶。 | 401 |
RoleAccessError | 使用者輸入的roleArn為空白,或者roleArn資訊與AccessKey ID/AccessKey Secret不屬於同一個雲帳號。 | 403 | ||
INSTANCE INVALIDATE | 指定的instance不屬於fpga執行個體。如果確定是fpga執行個體,請提交工單。 | 404 | ||
fpga_status | DescribeLoadTaskStatus | NOT AUTHORIZED | 找不到指定的instanceId,請檢查輸入參數。 | 401 |
FPGA NOT FOUND | 找不到指定fpgauuid,請檢查輸入參數。 | 404 | ||
download_image | LoadFpgaImage | ANOTHER TASK RUNNING | 之前提交的下載鏡像任務還在operating狀態。 | 503 |
IMAGE ACCESS ERROR | 指定的image不屬於當前雲賬戶。 | 401 | ||
YOU HAVE NO ACCESS TO THIS INSTANCE | 指定的instance不屬於當前的雲賬戶。 | 401 | ||
IMAGE NOT FOUND | 指定的fpgaImage找不到。 | 404 | ||
FPGA NOT FOUND | 指定的fpga找不到。 | 404 | ||
SHELL NOT MATCH | 鏡像的shell版本和指定的fpga上的shell版本不匹配。 | 404 | ||
RoleAccessError | 使用者輸入的roleArn為空白,或者roleArn資訊與AccessKey ID/AccessKey Secret不屬於同一個雲帳號。 | 403 | ||
Image not in success state | 指定的image不是success狀態,只有狀態為success的image才可以下載。 | 404 | ||
publish_image | PublishFpgaImage | FPGA IMAGE STATE ERROR | 指定的image不是success狀態。 | 404 |
FPGA IMAGE NOT FOUND | 指定的image沒有找到或者不屬於目前使用者。 | 404 |