Erhalten Sie Benachrichtigungen über den Bereitstellungs- und Komponentenstatus - AWS IoT Greengrass

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Erhalten Sie Benachrichtigungen über den Bereitstellungs- und Komponentenstatus

Mit den EventBridge Amazon-Veranstaltungsregeln erhalten Sie Benachrichtigungen über Statusänderungen für Ihre Greengrass-Bereitstellungen, die von Ihren Geräten empfangen wurden, und über installierte Komponenten auf Ihrem Gerät. EventBridge liefert einen Stream von Systemereignissen nahezu in Echtzeit, der Änderungen an AWS Ressourcen beschreibt. AWS IoT Greengrass sendet diese Ereignisse nach EventBridge bestem Wissen und Gewissen an. Das bedeutet, dass AWS IoT Greengrass versucht wird, alle Ereignisse an zu senden, EventBridge aber in einigen seltenen Fällen kann es vorkommen, dass ein Ereignis nicht zugestellt wird. Darüber hinaus AWS IoT Greengrass können mehrere Kopien eines bestimmten Ereignisses gesendet werden, was bedeutet, dass Ihre Event-Listener die Ereignisse möglicherweise nicht in der Reihenfolge empfangen, in der sie aufgetreten sind.

Anmerkung

Amazon EventBridge ist ein Event-Bus-Service, mit dem Sie Ihre Anwendungen mit Daten aus einer Vielzahl von Quellen verbinden können, wie z. B. Greengrass-Kerngeräten sowie Bereitstellungs- und Komponentenbenachrichtigungen. Weitere Informationen finden Sie unter Was ist Amazon EventBridge? im EventBridge Amazon-Benutzerhandbuch.

Ereignis zur Änderung des Bereitstellungsstatus

AWS IoT Greengrass löst ein Ereignis aus, wenn eine Bereitstellung in die folgenden Zustände übergeht: FAILEDSUCCEEDED,, COMPLETEDREJECTED, undCANCELED. Sie können eine EventBridge Regel erstellen, die für alle Zustandsübergänge oder Übergänge in von Ihnen angegebene Zustände ausgeführt wird. Wenn eine Bereitstellung in einen Zustand übergeht, der eine Regel initiiert, EventBridge ruft sie die in der Regel definierten Zielaktionen auf. Auf diese Weise können Sie Benachrichtigungen senden, Ereignisinformationen erfassen, Korrekturmaßnahmen ergreifen oder andere Ereignisse als Reaktion auf eine Statusänderung initiieren. Sie können beispielsweise Regeln für die folgenden Anwendungsfälle erstellen:

  • Initiiert Operationen nach der Bereitstellung, z. B. das Herunterladen von Ressourcen und die Benachrichtigung des Personals.

  • Senden Sie Benachrichtigungen bei erfolgreicher oder fehlgeschlagener Bereitstellung.

  • Veröffentlichen Sie benutzerdefinierte Metriken zu Bereitstellungsereignissen.

Das Ereignis für eine Änderung des Bereitstellungsstatus verwendet das folgende Format:

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

Sie können Regeln und Ereignisse erstellen, die Sie über den Status einer Bereitstellung auf dem Laufenden halten. Ein Ereignis wird ausgelöst, wenn eine Bereitstellung entweder alsFAILED,, SUCCEEDED COMPLETEDREJECTED, oder abgeschlossen wirdCANCELED. Wenn die Bereitstellung auf dem Kerngerät fehlgeschlagen ist, erhalten Sie eine ausführliche Antwort, in der erklärt wird, warum die Bereitstellung fehlgeschlagen ist. Weitere Informationen zu Fehlercodes bei der Bereitstellung finden Sie unterDetaillierte Bereitstellungsfehlercodes.

Bereitstellungsstatus
  • FAILED. Die Bereitstellung ist fehlgeschlagen.

  • SUCCEEDED. Die Bereitstellung, die auf eine Dinggruppe abzielt, wurde erfolgreich abgeschlossen.

  • COMPLETED. Die Bereitstellung, die auf eine Sache abzielte, wurde erfolgreich abgeschlossen.

  • REJECTED. Der Einsatz wurde abgelehnt. Weitere Informationen finden Sie in dem entsprechenden statusDetails Feld.

  • CANCELED. Die Bereitstellung wurde vom Benutzer abgebrochen.

Es ist möglich, dass Ereignisse doppelt sind oder nicht in der richtigen Reihenfolge werden. Um die Reihenfolge der Ereignisse zu bestimmen, verwenden Sie die time-Eigenschaft.

Eine vollständige Liste der Fehlercodes in errorStacks und errorTypes finden Sie unter Detaillierte Bereitstellungsfehlercodes undDetaillierte Komponenten-Statuscodes.

Ereignis zur Änderung des Komponentenstatus

Für AWS IoT Greengrass Versionen 2.12.2 und früher gibt Greengrass ein Ereignis aus, wenn eine Komponente in die folgenden Zustände übergeht: und. ERRORED BROKEN Für Greengrass Nucleus-Versionen 2.12.3 und höher gibt Greengrass ein Ereignis aus, wenn eine Komponente in die folgenden Zustände übergeht:ERRORED,, und. BROKEN RUNNING FINISHED Greengrass gibt auch ein Ereignis aus, wenn eine Bereitstellung abgeschlossen ist. Sie können eine EventBridge Regel erstellen, die für alle von Ihnen angegebenen Zustandsübergänge oder Übergänge zu Zuständen gilt. Wenn eine installierte Komponente in einen Zustand übergeht, der eine Regel EventBridge auslöst, werden die in der Regel definierten Zielaktionen aufgerufen. Auf diese Weise können Sie Benachrichtigungen senden, Ereignisinformationen erfassen, Korrekturmaßnahmen ergreifen oder andere Ereignisse als Reaktion auf eine Statusänderung initiieren.

Das Ereignis für eine Änderung des Komponentenstatus verwendet die folgenden Formate:

Greengrass nucleus v2.12.2 and earlier

Status der Komponente: ERRORED oder 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

Status der Komponente: ERRORED oder 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." } ] } }

Status der Komponente: RUNNING oder 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 } ] } }

Sie können Regeln und Ereignisse erstellen, die Sie über den Status einer installierten Komponente auf dem Laufenden halten. Ein Ereignis wird ausgelöst, wenn sich der Status einer Komponente auf dem Gerät ändert. Sie erhalten eine ausführliche Antwort, in der erklärt wird, warum eine Komponente fehlerhaft oder defekt ist. Sie erhalten außerdem einen Statuscode, der einen Grund für den Fehler angibt. Weitere Informationen zu den Statuscodes von Komponenten finden Sie unterDetaillierte Komponenten-Statuscodes.

Voraussetzungen für die Erstellung von EventBridge Regeln

Bevor Sie eine EventBridge Regel für erstellen AWS IoT Greengrass, gehen Sie wie folgt vor:

  • Machen Sie sich mit Ereignissen, Regeln und Zielen in vertraut EventBridge.

  • Erstellen und konfigurieren Sie die Ziele, die durch Ihre EventBridge Regeln aufgerufen werden. Regeln können viele Arten von Zielen aufrufen, einschließlich:

    • Amazon-Simple-Notification-Service (Amazon-SNS)

    • AWS Lambda Funktionen

    • Amazon Kinesis Video Streams

    • Amazon-Simple-Queue-Service-(Amazon-SQS)-Warteschlangen

Weitere Informationen finden Sie unter Was ist Amazon EventBridge? und Erste Schritte mit Amazon EventBridge im EventBridge Amazon-Benutzerhandbuch.

Benachrichtigungen zum Gerätestatus konfigurieren (Konsole)

Gehen Sie wie folgt vor, um eine EventBridge Regel zu erstellen, die ein Amazon SNS SNS-Thema veröffentlicht, wenn sich der Bereitstellungsstatus für eine Gruppe ändert. Auf diese Weise können Webserver, E-Mail-Adressen und andere Themenabonnenten auf das Ereignis reagieren. Weitere Informationen finden Sie im EventBridge Amazon-Benutzerhandbuch unter Erstellen einer EventBridge Regel, die bei einem Ereignis von einer AWS Ressource ausgelöst wird.

  1. Öffnen Sie die EventBridgeAmazon-Konsole.

  2. Wählen Sie im Navigationsbereich Rules aus.

  3. Wählen Sie Regel erstellen aus.

  4. Geben Sie einen Namen und eine Beschreibung für die Regel ein.

    Eine Regel darf nicht denselben Namen wie eine andere Regel in derselben Region und auf demselben Event Bus haben.

  5. Wählen Sie als Event bus (Event Bus) den Event Bus aus, den Sie dieser Regel zuordnen möchten. Wenn Sie möchten, dass diese Regel mit Ereignissen aus Ihrem eigenen Konto übereinstimmt, wählen Sie AWS -Standard-Event-Bus aus. Wenn ein AWS Service in Ihrem Konto ein Ereignis ausgibt, wird es immer an den Standard-Event-Bus Ihres Kontos weitergeleitet.

  6. Bei Rule type (Regeltyp) wählen Sie Rule with an event pattern (Regel mit einem Ereignismuster) aus.

  7. Wählen Sie Weiter aus.

  8. Wählen Sie unter Event source (Ereignisquelle) AWS events (Ereignisse) aus.

  9. Wählen Sie für Event-Pattern die Option AWS Services aus.

  10. Wählen Sie für den AWS Service Greengrass.

  11. Wählen Sie unter Ereignistyp eine der folgenden Optionen aus:

    • Wählen Sie für Bereitstellungsereignisse Greengrass V2 Effective Deployment Status Change.

    • Wählen Sie für Komponentenereignisse die Option Greengrass V2 Installed Component Status Change.

  12. Wählen Sie Weiter aus.

  13. Bei Target types (Zieltypen) wählen Sie AWS -Service aus.

  14. Für Wählen Sie ein Ziel aus konfigurieren Sie Ihr Ziel. In diesem Beispiel wird ein Amazon SNS SNS-Thema verwendet, Sie können jedoch auch andere Zieltypen für das Senden von Benachrichtigungen konfigurieren.

    1. Wählen Sie in Target (Ziel) die Option SNS topic (SNS-Thema) aus.

    2. Wählen Sie unter Thema das Zielthema aus.

    3. Wählen Sie Weiter.

  15. Wählen Sie Weiter.

  16. Überprüfen Sie die Details der Regel und wählen Sie dann Create rule (Regel erstellen) aus.

Benachrichtigungen zum Gerätestatus (CLI) konfigurieren

Gehen Sie wie folgt vor, um eine EventBridge Regel zu erstellen, die ein Amazon SNS SNS-Thema veröffentlicht, wenn es ein Greengrass-Statusänderungsereignis gibt. Auf diese Weise können Webserver, E-Mail-Adressen und andere Themenabonnenten auf das Ereignis reagieren.

  1. Erstellen Sie die -Regel.

    • Für Ereignisse zur Änderung des Bereitstellungsstatus.

      aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail-type\": [\"Greengrass V2 Effective Deployment Status Change\"]}"
    • Für Ereignisse zur Änderung des Komponentenstatus.

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

    Eigenschaften, die aus dem Muster weggelassen werden, werden ignoriert.

  2. Fügen Sie das Thema als Regelziel hinzu.

    • Ersetzen Sie topic-arn durch den ARN Ihres Amazon SNS SNS-Themas.

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

    Damit Amazon EventBridge Ihr Zielthema aufrufen kann, müssen Sie Ihrem Thema eine ressourcenbasierte Richtlinie hinzufügen. Weitere Informationen finden Sie unter Amazon SNS SNS-Berechtigungen im EventBridge Amazon-Benutzerhandbuch.

Weitere Informationen finden Sie unter Ereignisse und Ereignismuster EventBridge im EventBridge Amazon-Benutzerhandbuch.

Benachrichtigungen zum Gerätestatus konfigurieren (AWS CloudFormation)

Verwenden Sie AWS CloudFormation Vorlagen, um EventBridge Regeln zu erstellen, die Benachrichtigungen über Statusänderungen für Ihre Greengrass-Gruppenbereitstellungen senden. Weitere Informationen finden Sie in der Referenz zum EventBridge Amazon-Ressourcentyp im AWS CloudFormation Benutzerhandbuch.

Weitere Informationen finden Sie auch unter