Check deployment status
You can check the status of a deployment that you create in AWS IoT Greengrass. You can also check the
status of the AWS IoT jobs that roll out the deployment to each core device. While a deployment is
active, the AWS IoT job's status is IN_PROGRESS. After you create a new revision of a
deployment, the status of the previous revision's AWS IoT job changes to
CANCELLED.
Check deployment status
You can check the status of a deployment that you identify by its target or its ID.
To check deployment status by target (AWS CLI)
-
Run the following command to retrieve the status of the latest deployment for a target. Replace
targetArnwith the Amazon Resource Name (ARN) of the AWS IoT thing or thing group that the deployment targets.aws greengrassv2 list-deployments --target-arntargetArnThe response contains a list with the latest deployment for the target. This deployment object includes the status of the deployment.
To check deployment status by ID (AWS CLI)
-
Run the following command to retrieve the status of a deployment. Replace
deploymentIdwith the ID of the deployment to query.aws greengrassv2 get-deployment --deployment-iddeploymentIdThe response contains the status of the deployment.
Check device deployment status
You can check the status of a deployment job that applies to an individual core device. You can also check the status of a deployment job for a thing group deployment.
To check deployment job statuses for a core device (AWS CLI)
-
Run the following command to retrieve the status of all deployment jobs for a core device. Replace
coreDeviceNamewith the name of the core device to query.aws greengrassv2 list-effective-deployments --core-device-thing-namecoreDeviceNameThe response contains the list of deployment jobs for the core device. You can identify the job for a deployment by the job's
deploymentIdortargetArn. Each deployment job contains the status of the job on the core device.
To check deployment statuses for a thing group (AWS CLI)
-
Run the following command to retrieve the ID of an existing deployment. Replace
targetArnwith the ARN of the target thing group.aws greengrassv2 list-deployments --target-arntargetArnThe response contains a list with the latest deployment for the target. Copy the
deploymentIdfrom the response to use in the next step.Note
You can also list a deployment other than the latest deployment for the target. Specify the
--history-filter ALLargument to list all deployments for the target. Then, copy the ID of the deployment that you want to check the status of. -
Run the following command to get the deployment's details. Replace
deploymentIDwith the ID from the previous step.aws greengrassv2 get-deployment --deployment-iddeploymentIdThe response contains information about the deployment. Copy the
iotJobIdfrom the response to use in the following step. -
Run the following command to describe a core device's job execution for the deployment. Replace
iotJobIdandcoreDeviceThingNamewith the job ID from the previous step and the core device you want to check the status for.aws iot describe-job-execution --job-idiotJobId--thing-namecoreDeviceThingNameThe response contains the status of the core device's deployment job execution and details about the status. The
detailsMapcontains the following information:-
detailed-deployment-status– The deployment result status, which can be one of the following values:-
SUCCESSFUL– The deployment succeeded. -
FAILED_NO_STATE_CHANGE– The deployment failed while the core device prepared to apply the deployment. -
FAILED_ROLLBACK_NOT_REQUESTED– The deployment failed, and the deployment didn't specify to roll back to a previous working configuration, so the core device might not be functioning correctly. -
FAILED_ROLLBACK_COMPLETE– The deployment failed, and the core device successfully rolled back to a previous working configuration. -
FAILED_UNABLE_TO_ROLLBACK– The deployment failed, and the core device failed to roll back to a previous working configuration, so the core device might not be functioning correctly.
If the deployment failed, check the
deployment-failure-causevalue and the core device's log files to identify the issue. For more information about how to access the core device's log files, see Monitor AWS IoT Greengrass logs. -
-
deployment-failure-cause– An error message that provides additional details about why the job execution failed.
The response looks similar to the following example.
{ "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 account 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 } } -