Ricevi notifiche sullo stato di implementazione e integrità dei componenti - AWS IoT Greengrass

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Ricevi notifiche sullo stato di implementazione e integrità dei componenti

Le regole EventBridge degli eventi di Amazon ti forniscono notifiche sui cambiamenti di stato per le tue distribuzioni Greengrass ricevute dai tuoi dispositivi e per i componenti installati sul tuo dispositivo. EventBridge fornisce un flusso quasi in tempo reale di eventi di sistema che descrive i cambiamenti nelle risorse. AWS AWS IoT Greengrass invia questi eventi a con EventBridge la massima diligenza possibile. Ciò significa che AWS IoT Greengrass tenta di inviare tutti gli eventi a EventBridge ma, in alcuni rari casi, un evento potrebbe non essere consegnato. Inoltre, è AWS IoT Greengrass possibile inviare più copie di un determinato evento, il che significa che gli ascoltatori dell'evento potrebbero non ricevere gli eventi nell'ordine in cui si sono verificati.

Nota

Amazon EventBridge è un servizio di bus di eventi che puoi utilizzare per connettere le tue applicazioni con dati provenienti da una varietà di fonti, come i dispositivi principali Greengrass e le notifiche di distribuzione e componenti. Per ulteriori informazioni, consulta What is Amazon EventBridge? nella Amazon EventBridge User Guide.

Evento di modifica dello stato di implementazione

AWS IoT Greengrass emette un evento quando una distribuzione entra nei seguenti stati:FAILED,SUCCEEDED, COMPLETEDREJECTED, eCANCELED. È possibile creare una EventBridge regola che venga eseguita per tutte le transizioni di stato o le transizioni verso gli stati specificati. Quando una distribuzione entra in uno stato che avvia una regola, EventBridge richiama le azioni target definite nella regola. In questo modo è possibile inviare notifiche, acquisire informazioni sugli eventi, intraprendere azioni correttive o avviare altri eventi in risposta a una modifica dello stato. Ad esempio, è possibile creare regole per i seguenti casi d'uso:

  • Avvia le operazioni successive all'implementazione, come il download delle risorse e la notifica al personale.

  • Inviare notifiche in caso di distribuzione riuscita o non riuscita.

  • Pubblicare parametri personalizzati sugli eventi di distribuzione.

L'evento per una modifica dello stato della distribuzione utilizza il formato seguente:

{ "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=)" } }

Puoi creare regole ed eventi che ti aggiorneranno sullo stato di una distribuzione. Un evento viene avviato quando una distribuzione viene completata comeFAILED,, SUCCEEDED COMPLETEDREJECTED, o. CANCELED Se la distribuzione non è riuscita sul dispositivo principale, riceverai una risposta dettagliata che spiega perché la distribuzione non è riuscita. Per ulteriori informazioni sui codici di errore di distribuzione, consultaCodici di errore di distribuzione dettagliati.

Stati della distribuzione
  • FAILED. La distribuzione non è riuscita.

  • SUCCEEDED. La distribuzione destinata a un gruppo di oggetti è stata completata con successo.

  • COMPLETED. L'implementazione mirata a un'operazione è stata completata con successo.

  • REJECTED. La distribuzione è stata rifiutata. Per ulteriori informazioni, consulta il statusDetails campo.

  • CANCELED. La distribuzione è stata annullata dall'utente.

È possibile che gli eventi vengano duplicati o non funzionino. Per determinare l'ordine degli eventi, utilizza la proprietà time.

Per un elenco completo dei codici di errore in errorStacks anderrorTypes, consulta Codici di errore di distribuzione dettagliati e. Codici di stato dettagliati dei componenti

Evento di modifica dello stato del componente

Per AWS IoT Greengrass le versioni 2.12.2 e precedenti, Greengrass emette un evento quando un componente entra nei seguenti stati: e. ERRORED BROKEN Per le versioni 2.12.3 e successive di Greengrass nucleus, Greengrass emette un evento quando un componente entra nei seguenti stati:,, e. ERRORED BROKEN RUNNING FINISHED Greengrass emetterà anche un evento al termine di un dispiegamento. È possibile creare una EventBridge regola che venga eseguita per tutte le transizioni di stato o le transizioni verso gli stati specificati. Quando un componente installato entra in uno stato che avvia una regola, EventBridge richiama le azioni di destinazione definite nella regola. In questo modo è possibile inviare notifiche, acquisire informazioni sugli eventi, intraprendere azioni correttive o avviare altri eventi in risposta a una modifica dello stato.

L'evento relativo alla modifica dello stato di un componente utilizza i seguenti formati:

Greengrass nucleus v2.12.2 and earlier

Stato del componente: ERRORED o 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

Stato del componente: ERRORED o 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." } ] } }

Stato del componente: RUNNING o 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 } ] } }

Puoi creare regole ed eventi che ti aggiorneranno sullo stato di un componente installato. Un evento viene avviato quando un componente cambia stato sul dispositivo. Riceverai una risposta dettagliata che spiega perché un componente è danneggiato o danneggiato. Riceverai anche un codice di stato che indicherà il motivo dell'errore. Per ulteriori informazioni sui codici di stato dei componenti, vedereCodici di stato dettagliati dei componenti.

Prerequisiti per la creazione di regole EventBridge

Prima di creare una EventBridge regola per AWS IoT Greengrass, procedi come segue:

  • Acquisisci familiarità con eventi, regole e obiettivi in. EventBridge

  • Crea e configura gli obiettivi richiamati dalle tue regole. EventBridge Le regole possono richiamare molti tipi di target, tra cui:

    • Servizio di notifica semplice Amazon (Amazon Simple Notification Service (Amazon SNS))

    • AWS Lambda funzioni

    • Flusso di video Amazon Kinesis

    • Code di Amazon Simple Queue Service (Amazon SQS)

Per ulteriori informazioni, consulta What is Amazon EventBridge? e Guida introduttiva ad Amazon EventBridge nella Amazon EventBridge User Guide.

Configura le notifiche sullo stato del dispositivo (console)

Utilizza i seguenti passaggi per creare una EventBridge regola che pubblichi un argomento di Amazon SNS quando lo stato di distribuzione cambia per un gruppo. Ciò consente a server Web, indirizzi e-mail e altri sottoscrittori di argomenti di rispondere all'evento. Per ulteriori informazioni, consulta Creazione di una EventBridge regola che si attiva su un evento da una AWS risorsa nella Amazon EventBridge User Guide.

  1. Apri la EventBridgeconsole Amazon.

  2. Nel pannello di navigazione, scegli Regole.

  3. Scegli Create rule (Crea regola).

  4. Inserire un nome e una descrizione per la regola.

    Una regola non può avere lo stesso nome di un'altra regola nella stessa regione e sullo stesso router di eventi.

  5. Per Select event bus (Seleziona bus di eventi), scegli il bus di eventi che desideri associare a questa regola. Se la regola deve cercare eventi corrispondenti provenienti dal tuo account, seleziona Bus di eventi predefiniti di AWS . Quando un AWS servizio del tuo account emette un evento, questo passa sempre al bus eventi predefinito del tuo account.

  6. Per Rule type (Tipo di regola), scegli Rule with an event pattern (Regola con un modello di eventi).

  7. Seleziona Successivo.

  8. Per Event source (Origine eventi), seleziona AWS events (Eventi ).

  9. Per Event pattern, scegli AWS servizi.

  10. Per l'AWS assistenza, scegli Greengrass.

  11. Per il tipo di evento, scegli tra le seguenti opzioni:

    • Per gli eventi di implementazione, scegli Greengrass V2 Effective Deployment Status Change.

    • Per gli eventi relativi ai componenti, scegliete Greengrass V2 Installed Component Status Change.

  12. Seleziona Successivo.

  13. Per Target types (Tipi di destinazione), scegli AWS service (Servizio ).

  14. Per Seleziona una destinazione, configura la tua destinazione. Questo esempio utilizza un argomento Amazon SNS, ma puoi configurare altri tipi di destinazione per inviare notifiche.

    1. In Target (Destinazione), scegli SNS topic (Argomento SNS).

    2. Per Argomento, scegli l'argomento di destinazione.

    3. Seleziona Successivo.

  15. Seleziona Successivo.

  16. Rivedi i dettagli della regola e scegli Create rule (Crea regola).

Configurazione delle notifiche sullo stato del dispositivo (CLI)

Utilizza i seguenti passaggi per creare una EventBridge regola che pubblichi un argomento di Amazon SNS quando si verifica un evento di modifica dello stato di Greengrass. Ciò consente a server Web, indirizzi e-mail e altri sottoscrittori di argomenti di rispondere all'evento.

  1. Crea la regola.

    • Per gli eventi di modifica dello stato di implementazione.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Effective Deployment Status Change\"]}"
    • Per gli eventi di modifica dello stato dei componenti.

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

    Le proprietà omesse dal modello vengono ignorate.

  2. Aggiungi l'argomento come destinazione della regola.

    • Sostituisci topic-arn con l'ARN del tuo argomento Amazon SNS.

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

    Per consentire EventBridge ad Amazon di indicare il tuo argomento di riferimento, devi aggiungere una politica basata sulle risorse all'argomento. Per ulteriori informazioni, consulta le autorizzazioni di Amazon SNS nella Amazon EventBridge User Guide.

Per ulteriori informazioni, consulta la sezione Eventi e modelli di eventi EventBridge nella Amazon EventBridge User Guide.

Configura le notifiche sullo stato del dispositivo (AWS CloudFormation)

Utilizza AWS CloudFormation i modelli per creare EventBridge regole che inviano notifiche sui cambiamenti di stato per le implementazioni del tuo gruppo Greengrass. Per ulteriori informazioni, consulta il riferimento ai tipi di EventBridge risorse Amazon nella Guida AWS CloudFormation per l'utente.

Consulta anche