檢查部署狀態 - AWS IoT Greengrass

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

檢查部署狀態

您可以檢查已在中建立的部署的狀態AWS IoT Greengrass。您也可以檢查將部署部署至每個核心裝置的AWS IoT工作狀態。部署處於作用中狀態時,AWS IoT工作的狀態為IN_PROGRESS。建立部署的新修訂版本後,先前修訂的AWS IoT工作狀態會變更為CANCELLED

檢查部署狀態

您可以檢查透過部署的目標或其 ID 識別的部署狀態。

若要依目標檢查部署狀態 (AWS CLI)
  • 執行以下命令來擷取目標的最新部署的狀態。將 TargetArn 取代為部署目標的AWS IoT物件或物件群組的 Amazon Resource Name (ARN)。

    aws greengrassv2 list-deployments --target-arn targetArn

    回應包含一份包含目標最新部署的清單。此部署物件包含部署的狀態。

若要依 ID (AWS CLI) 檢查部署狀態
  • 執行以下命令來擷取部署的狀態。將部 deploymentId ID 取代為要查詢的部署 ID。

    aws greengrassv2 get-deployment --deployment-id deploymentId

    回應包含部署的狀態。

檢查裝置部署狀態

您可以檢查套用至個別核心裝置的部署任務的狀態。您也可以檢查物件群組部署的部署工作狀態。

若要檢查核心裝置的部署工作狀態 (AWS CLI)
  • 執行以下命令來擷取核心裝置的所有部署任務的狀態。以要查詢的核心裝置名稱取coreDeviceName代。

    aws greengrassv2 list-effective-deployments --core-device-thing-name coreDeviceName

    回應包含核心裝置的部署工作清單。您可以透過工作的deploymentId或來識別部署工作targetArn。每個部署任務都會包含核心裝置上任務的狀態。

若要檢查物件群組的部署狀態 (AWS CLI)
  1. 執行以下命令來擷取現有部署的 ID。以目標物群組的 ARN 取代目標 Arn。

    aws greengrassv2 list-deployments --target-arn targetArn

    回應包含一份包含目標最新部署的清單。複製回應以在下一個步驟中使用的回應。deploymentId

    注意

    您也可以列出目標的最新部署以外的部署。指定--history-filter ALL引數以列出目標的所有部署。然後,複製您要檢查其狀態的部署 ID。

  2. 執行以下命令來取得部署的詳細資訊。使用上一個步驟的 ID 取代部署 ID。

    aws greengrassv2 get-deployment --deployment-id deploymentId

    回應會包含部署的相關資訊。iotJobId從響應複製以在以下步驟中使用。

  3. 執行下列命令,說明核心裝置針對部署的工作執行。使用上一個步驟中的作業 ID 以及要檢查其狀態的核心裝置取iotJobId代並coreDeviceThing命名。

    aws iot describe-job-execution --job-id iotJobId --thing-name coreDeviceThingName

    回應包含核心裝置的部署工作執行狀態,以及狀態的詳細資料。包detailsMap含下列資訊:

    • detailed-deployment-status— 部署結果狀態,可以是下列其中一個數值:

      • SUCCESSFUL— 部署成功。

      • FAILED_NO_STATE_CHANGE— 核心裝置準備套用部署時,部署失敗。

      • FAILED_ROLLBACK_NOT_REQUESTED— 部署失敗,且部署未指定回復至先前的運作中設定,因此核心裝置可能無法正常運作。

      • FAILED_ROLLBACK_COMPLETE— 部署失敗,核心裝置成功還原為先前的工作組態。

      • FAILED_UNABLE_TO_ROLLBACK— 部署失敗,核心裝置無法回復到先前的可運作組態,因此核心裝置可能無法正常運作。

      如果部署失敗,請檢查deployment-failure-cause值和核心裝置的記錄檔,以識別問題。如需存取核心裝置的記錄檔的詳細資訊,請參閱監控AWS IoT Greengrass日誌

    • deployment-failure-cause— 錯誤訊息,提供有關工作執行失敗原因的其他詳細資訊。

    回應看起來類似以下範例。

    { "execution": { "jobId": "2cc2698a-5175-48bb-adf2-1dd345606ebd", "status": "FAILED", "statusDetails": { "detailsMap": { "deployment-failure-cause": "No local or cloud component version satisfies the requirements. Check whether the version constraints conflict and that the component exists in your AWS 帳戶 with a version that matches the version constraints. If the version constraints conflict, revise deployments to resolve the conflict. Component com.example.HelloWorld version constraints: LOCAL_DEPLOYMENT requires =1.0.0, thinggroup/MyGreengrassCoreGroup requires =1.0.1.", "detailed-deployment-status": "FAILED_NO_STATE_CHANGE" } }, "thingArn": "arn:aws:iot:us-west-2:123456789012:thing/MyGreengrassCore", "queuedAt": "2022-02-15T14:45:53.098000-08:00", "startedAt": "2022-02-15T14:46:05.670000-08:00", "lastUpdatedAt": "2022-02-15T14:46:20.892000-08:00", "executionNumber": 1, "versionNumber": 3 } }