本文介紹使用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 configfaascmd auth 命令建立該角色並為其授權。
    • 如果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