检查部署状态 - AWS IoT Greengrass

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

检查部署状态

您可以检查您在 AWS IoT Greengrass中创建的部署的状态。您还可以查看将部署部署到每台核心设备的 AWS IoT 任务的状态。当部署处于活动状态时, AWS IoT 任务的状态为IN_PROGRESS。创建部署的新修订版后,先前修订版的 AWS IoT 作业状态将更改为CANCELLED

检查部署状态

您可以按目标或 ID 检查所标识的部署的状态。

按目标检查部署状态(AWS CLI)
  • 运行以下命令以检索目标的最新部署的状态。targetArn替换为部署目标 AWS IoT 的事物或事物组的 Amazon 资源名称 (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

    响应包含核心设备的部署作业列表。您可以通过作业的 deploymentIdtargetArn 来识别部署作业。每个部署作业都包含核心设备上作业的状态。

检查事物组的部署状态(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 } }