檢查部署狀態 - 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。

    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。將 targetArn 取代為目標物件群組的 ARN。

    aws greengrassv2 list-deployments --target-arn targetArn

    回應包含具有目標最新部署的清單。deploymentId 從回應中複製 以用於下一個步驟。

    注意

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

  2. 執行下列命令以取得部署的詳細資訊。將 deploymentID 取代為上一個步驟的 ID。

    aws greengrassv2 get-deployment --deployment-id deploymentId

    回應包含部署的相關資訊。iotJobId 從回應中複製 以用於下列步驟。

  3. 執行下列命令來描述核心裝置在部署時的任務執行。將 iotJobIdcoreDeviceThingName 取代為上一個步驟的任務 ID,以及您要檢查狀態的核心裝置。

    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 } }