Recevez des notifications relatives au déploiement et à l'état de santé des composants - AWS IoT Greengrass

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Recevez des notifications relatives au déploiement et à l'état de santé des composants

Les règles relatives aux EventBridge événements d'Amazon vous fournissent des notifications concernant les changements d'état de vos déploiements Greengrass reçus par vos appareils et des composants installés sur votre appareil. EventBridge fournit un flux d'événements système en temps quasi réel qui décrit l'évolution des AWS ressources. AWS IoT Greengrass envoie ces événements dans EventBridge la mesure du possible. Cela signifie que AWS IoT Greengrass tous les événements sont envoyés à EventBridge mais, dans de rares cas, un événement peut ne pas être diffusé. En outre, AWS IoT Greengrass cela peut envoyer plusieurs copies d'un événement donné, ce qui signifie que les auditeurs de vos événements risquent de ne pas recevoir les événements dans l'ordre dans lequel ils se sont produits.

Note

Amazon EventBridge est un service de bus d'événements que vous pouvez utiliser pour connecter vos applications à des données provenant de diverses sources, telles que les appareils principaux de Greengrass et les notifications de déploiement et de composants. Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ? dans le guide de EventBridge l'utilisateur Amazon.

Événement de modification de l'état du déploiement

AWS IoT Greengrass émet un événement lorsqu'un déploiement entre dans les états suivants :FAILED,SUCCEEDED, COMPLETEDREJECTED, etCANCELED. Vous pouvez créer une EventBridge règle qui s'applique à toutes les transitions d'état ou aux transitions vers les états que vous spécifiez. Lorsqu'un déploiement entre dans un état qui initie une règle, il EventBridge invoque les actions cibles définies dans la règle. Cela vous permet d'envoyer des notifications, de capturer des informations sur les événements, de prendre des mesures correctives ou de déclencher d'autres événements en réponse à un changement d'état. Par exemple, vous pouvez créer des règles pour les cas d'utilisation suivants :

  • Lancez des opérations après le déploiement, telles que le téléchargement de ressources et la notification du personnel.

  • Envoyer des notifications en cas de réussite ou de l'échec d'un déploiement.

  • Publier des métriques personnalisées sur les événements de déploiement.

L' événement pour un changement d'état de déploiement utilise le format suivant :

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Effective Deployment Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail":{ "deploymentId": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681", "coreDeviceExecutionStatus": "FAILED|SUCCEEDED|COMPLETED|REJECTED|CANCELED", "statusDetails": { "errorStack": ["DEPLOYMENT_FAILURE", "ARTIFACT_DOWNLOAD_ERROR", "S3_ERROR", "S3_ACCESS_DENIED", "S3_HEAD_OBJECT_ACCESS_DENIED"], "errorTypes": ["DEPENDENCY_ERROR", "PERMISSION_ERROR"], }, "reason": "S3_HEAD_OBJECT_ACCESS_DENIED: FAILED_NO_STATE_CHANGE: Failed to download artifact name: 's3://pentest27/nucleus/281/aws.greengrass.nucleus.zip' for component aws.greengrass.Nucleus-2.8.1, reason: S3 HeadObject returns 403 Access Denied. Ensure the IAM role associated with the core device has a policy granting s3:GetObject. null (Service: S3, Status Code: 403, Request ID: HR94ZNT2161DAR58, Extended Request ID: wTX4DDI+qigQt3uzwl9rlnQiYlBgwvPm/KJFWeFAn9t1mnGXTms/luLCYANgq08RIH+x2H+hEKc=)" } }

Vous pouvez créer des règles et des événements qui vous informeront de l'état d'un déploiement. Un événement est déclenché lorsqu'un déploiement se termine sous la forme FAILEDSUCCEEDED,COMPLETED,REJECTED, ouCANCELED. Si le déploiement a échoué sur le périphérique principal, vous recevrez une réponse détaillée expliquant pourquoi le déploiement a échoué. Pour plus d'informations sur les codes d'erreur de déploiement, consultezCodes d'erreur de déploiement détaillés.

États de déploiement
  • FAILED. Le déploiement a échoué.

  • SUCCEEDED. Le déploiement ciblé sur un groupe d'objets s'est terminé avec succès.

  • COMPLETED. Le déploiement visait un objet terminé avec succès.

  • REJECTED. Le déploiement a été refusé. Pour plus d'informations, consultez le statusDetails champ.

  • CANCELED. Le déploiement a été annulé par l'utilisateur.

Il est possible que les événements soient dupliqués ou hors service. Pour déterminer l'ordre des événements, utilisez la propriété time.

Pour obtenir la liste complète des codes d'erreur contenus dans errorStacks eterrorTypes, reportez-vous Codes d'erreur de déploiement détaillés aux sections etCodes d'état détaillés des composants.

Événement de changement d'état du composant

Pour AWS IoT Greengrass les versions 2.12.2 et antérieures, Greengrass émet un événement lorsqu'un composant entre dans les états suivants : et. ERRORED BROKEN Pour les versions 2.12.3 et ultérieures de Greengrass nucleus, Greengrass émet un événement lorsqu'un composant entre dans les états suivants :,, et. ERRORED BROKEN RUNNING FINISHED Greengrass émettra également un événement lorsqu'un déploiement sera terminé. Vous pouvez créer une EventBridge règle qui s'applique à toutes les transitions d'état ou aux transitions vers les états que vous spécifiez. Lorsqu'un composant installé entre dans un état qui initie une règle, il EventBridge invoque les actions cibles définies dans la règle. Cela vous permet d'envoyer des notifications, de capturer des informations sur les événements, de prendre des mesures correctives ou de déclencher d'autres événements en réponse à un changement d'état.

L'événement de modification de l'état d'un composant utilise les formats suivants :

Greengrass nucleus v2.12.2 and earlier

État du composant : ERRORED ou BROKEN

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "ERRORED|BROKEN", "lifecycleStatusCodes": ["STARTUP_ERROR"], "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1." } ] } }
Greengrass nucleus v2.12.3 and later

État du composant : ERRORED ou BROKEN

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "ERRORED|BROKEN", "lifecycleStatusCodes": ["STARTUP_ERROR"], "lifecycleStateDetails": "An error occurred during startup. The startup script exited with code 1." } ] } }

État du composant : RUNNING ou FINISHED

{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass V2 Installed Component Status Change", "source":"aws.greengrass", "account":"123456789012", "region":"us-west-2", "time":"2018-03-22T00:38:11Z", "resources":["arn:aws:greengrass:us-east-1:123456789012:coreDevices:MyGreengrassCore"], "detail": { "components": [ { "componentName": "MyComponent", "componentVersion": "1.0.0", "root": true, "lifecycleState": "RUNNING|FINISHED", "lifecycleStateDetails": null } ] } }

Vous pouvez créer des règles et des événements qui vous informeront de l'état d'un composant installé. Un événement est déclenché lorsqu'un composant change d'état sur le périphérique. Vous recevrez une réponse détaillée expliquant pourquoi un composant est défectueux ou défectueux. Vous recevrez également un code d'état qui indiquera la raison de l'échec. Pour plus d'informations sur les codes d'état des composants, consultezCodes d'état détaillés des composants.

Conditions préalables à la création de règles EventBridge

Avant de créer une EventBridge règle pour AWS IoT Greengrass, procédez comme suit :

  • Familiarisez-vous avec les événements, les règles et les cibles dans EventBridge.

  • Créez et configurez les cibles invoquées par vos EventBridge règles. Les règles peuvent appeler de nombreux types de cibles, notamment :

    • Amazon Simple Notification Service (Amazon SNS)

    • AWS Lambda fonctions

    • Amazon Kinesis Video Streams

    • Files d'attente Amazon Simple Queue Service (Amazon SQS)

Pour plus d'informations, consultez Qu'est-ce qu'Amazon EventBridge ? et Getting started with Amazon EventBridge dans le guide de EventBridge l'utilisateur Amazon.

Configuration des notifications relatives à l'état de santé de l'appareil (console)

Suivez les étapes ci-dessous pour créer une EventBridge règle qui publie une rubrique Amazon SNS lorsque l'état de déploiement d'un groupe change. Cela permet aux serveurs web, aux adresses e-mail et aux autres abonnés à la rubrique de répondre à l'événement. Pour plus d'informations, consultez la section Création d'une EventBridge règle déclenchant un événement à partir d'une AWS ressource dans le guide de EventBridge l'utilisateur Amazon.

  1. Ouvrez la EventBridgeconsole Amazon.

  2. Dans le volet de navigation, choisissez Règles.

  3. Choisissez Créer une règle.

  4. Saisissez un nom et une description pour la règle.

    Une règle ne peut pas avoir le même nom qu'une autre règle de la même région et sur le même bus d'événement.

  5. Pour Event bus (Bus d'événement), sélectionnez le bus d'événement que vous souhaitez associer à cette règle. Si vous souhaitez que cette règle corresponde aux événements provenant de votre compte, sélectionnez Bus d’événements par défaut AWS . Lorsqu'un AWS service de votre compte émet un événement, celui-ci est toujours redirigé vers le bus d'événements par défaut de votre compte.

  6. Pour Type de règle, choisissez Règle avec un modèle d’événement.

  7. Choisissez Suivant.

  8. Pour Event source (Source de l'événement), choisissez AWS events (Événements).

  9. Dans Modèle d'événement, sélectionnez AWS services.

  10. Pour le AWS service, choisissez Greengrass.

  11. Pour le type d'événement, choisissez l'une des options suivantes :

    • Pour les événements de déploiement, choisissez Greengrass V2 Effective Deployment Status Change.

    • Pour les événements relatifs aux composants, choisissez Greengrass V2 Installed Component Status Change.

  12. Choisissez Suivant.

  13. Pour Types de cibles, choisissez service AWS .

  14. Pour Sélectionner une cible, configurez votre cible. Cet exemple utilise une rubrique Amazon SNS, mais vous pouvez configurer d'autres types de cibles pour envoyer des notifications.

    1. Pour Target (Cible), choisissez SNS topic (Rubrique SNS).

    2. Pour Topic (Rubrique), choisissez votre rubrique cible.

    3. Choisissez Suivant.

  15. Choisissez Suivant.

  16. Consultez les détails de la règle et choisissez Create rule (Créer une règle).

Configuration des notifications d'état de l'appareil (CLI)

Suivez les étapes ci-dessous pour créer une EventBridge règle qui publie une rubrique Amazon SNS en cas d'événement de changement de statut de Greengrass. Cela permet aux serveurs web, aux adresses e-mail et aux autres abonnés à la rubrique de répondre à l'événement.

  1. Créez la règle .

    • Pour les événements de modification de l'état du déploiement.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Effective Deployment Status Change\"]}"
    • Pour les événements de modification de l'état des composants.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Installed Component Status Change\"]}"

    Les propriétés qui sont omises dans le modèle sont ignorées.

  2. Ajoutez la rubrique en tant que cible de règle.

    • Remplacez topic-arn par l'ARN de votre rubrique Amazon SNS.

    aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="topic-arn"
    Note

    Pour autoriser Amazon EventBridge à appeler votre sujet cible, vous devez ajouter une politique basée sur les ressources à votre sujet. Pour plus d'informations, consultez les autorisations Amazon SNS dans le guide de EventBridge l'utilisateur Amazon.

Pour plus d'informations, consultez la section Événements et modèles d'événements EventBridge dans le guide de EventBridge l'utilisateur Amazon.

Configurer les notifications relatives à l'état de l'appareil (AWS CloudFormation)

Utilisez des AWS CloudFormation modèles pour créer des EventBridge règles qui envoient des notifications concernant les changements d'état pour les déploiements de votre groupe Greengrass. Pour plus d'informations, consultez la référence aux types de EventBridge ressources Amazon dans le guide de AWS CloudFormation l'utilisateur.

Consultez aussi