View a markdown version of this page

Benachrichtigungen über verwaltete Integrationen - Verwaltete Integrationen für AWS IoT Device Management

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.

Benachrichtigungen über verwaltete Integrationen

Benachrichtigungen über verwaltete Integrationen liefern Updates und wichtige Erkenntnisse aus Geräten. Zu den Benachrichtigungen gehören Connector-Ereignisse, Gerätebefehle, Lebenszyklusereignisse, OTA (Over-the-Air) -Updates und Fehlerberichte. Diese Erkenntnisse liefern verwertbare Informationen, um automatisierte Workflows zu erstellen, sofortige Maßnahmen zu ergreifen oder Ereignisdaten zur Fehlerbehebung zu speichern.

Derzeit werden nur Amazon Kinesis Kinesis-Datenstreams als Ziel für Benachrichtigungen über verwaltete Integrationen unterstützt. Sie müssen zunächst einen Amazon Kinesis Kinesis-Datenstream einrichten und Managed Integrations Zugriff auf den Datenstream gewähren, bevor Sie Benachrichtigungen einrichten können.

Amazon Kinesis für Benachrichtigungen einrichten

Gehen Sie wie folgt vor, um Benachrichtigungen für Amazon Kinesis for Managed Integrations einzurichten:

Schritt 1: Erstellen Sie einen Amazon Kinesis Kinesis-Datenstream

Ein Amazon Kinesis Data Stream kann eine große Datenmenge in Echtzeit aufnehmen, die Daten dauerhaft speichern und sie für Anwendungen verfügbar machen.

So erstellen Sie einen Amazon Kinesis Kinesis-Datenstream

Schritt 2: Erstellen Sie eine Berechtigungsrichtlinie

Erstellen Sie eine Berechtigungsrichtlinie, die Managed Integrations den Zugriff auf Ihren Kinesis-Datenstrom ermöglicht.

Um eine Berechtigungsrichtlinie zu erstellen
  • Um eine Berechtigungsrichtlinie zu erstellen, kopieren Sie die unten stehende Richtlinie und folgen Sie den unter Richtlinien mithilfe des JSON-Editors erstellen beschriebenen Schritte

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Action": "kinesis:PutRecord", "Resource": "*", "Effect": "Allow" } ] }

Öffnen Sie das IAM-Dashboard und klicken Sie auf Rollen.

Um zum IAM-Dashboard zu navigieren
  • Öffnen Sie das IAM-Dashboard und klicken Sie auf Rollen.

    Weitere Informationen finden Sie unter IAM-Rollenerstellung im AWS Identity and Access ManagementBenutzerhandbuch.

Schritt 4: Verwenden Sie eine benutzerdefinierte Vertrauensrichtlinie

Sie können eine benutzerdefinierte Vertrauensrichtlinie verwenden, um Managed Integrations Zugriff auf den Kinesis-Datenstream zu gewähren.

Um eine benutzerdefinierte Vertrauensrichtlinie zu verwenden
  • Erstellen Sie eine neue Rolle und wählen Sie Benutzerdefinierte Vertrauensrichtlinie. Klicken Sie auf Weiter.

    Die folgende Richtlinie ermöglicht es Managed Integrations, diese Rolle zu übernehmen, und die Condition Erklärung trägt dazu bei, verwirrende Probleme mit Stellvertretern zu vermeiden.

    JSON
    { "Version":"2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": "iotmanagedintegrations.amazonaws.com" }, "Action": "sts:AssumeRole", "Condition": { "StringEquals": { "aws:SourceAccount": "123456789012" }, "ArnLike": { "aws:SourceArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:*" } } } ] }

Schritt 5: Wenden Sie Ihre Berechtigungsrichtlinie an

Fügen Sie der Rolle die in Schritt 2 erstellte Berechtigungsrichtlinie hinzu.

Um eine Berechtigungsrichtlinie hinzuzufügen
  • Suchen Sie auf der Seite „Berechtigungen hinzufügen“ nach der Berechtigungsrichtlinie, die Sie in Schritt 2 erstellt haben, und fügen Sie sie hinzu. Klicken Sie auf Weiter.

Schritt 6: Geben Sie einen Rollennamen ein

  • Geben Sie einen Rollennamen ein und klicken Sie auf Rolle erstellen.

Richten Sie Benachrichtigungen für verwaltete Integrationen ein

Gehen Sie wie folgt vor, um Benachrichtigungen für verwaltete Integrationen einzurichten:

Schritt 1: Erteilen Sie Benutzern die Erlaubnis, die CreateDestination API aufzurufen

Schritt 2: Rufen Sie die API auf CreateDestination

  • Rufen Sie die CreateDestination API auf

    Nachdem Sie Ihren Amazon Kinesis Kinesis-Datenstream und Ihre Stream-Zugriffsrolle erstellt haben, rufen Sie die CreateDestinationAPI auf, um Ihr Benachrichtigungsziel zu erstellen, an das die Benachrichtigungen weitergeleitet werden. Verwenden Sie für den DeliveryDestinationArn Parameter den arn aus Ihrem neuen Amazon Kinesis Kinesis-Datenstream.

    { "DeliveryDestinationArn": "Your Kinesis arn" "DeliveryDestinationType": "KINESIS" "Name": "DestinationName" "ClientToken": "string" "RoleArn": "arn:aws:iam::accountID:role/ROLE_CREATED_IN_PREVIOUS_STEP" }
    Anmerkung

    ClientTokenist ein Idempotenz-Token. Wenn Sie eine Anfrage, die zunächst erfolgreich abgeschlossen wurde, mit demselben Client-Token und denselben Parametern erneut versuchen, ist der Wiederholungsversuch erfolgreich, ohne dass weitere Aktionen ausgeführt werden.

Schritt 3: Rufen Sie die API auf CreateNotificationConfiguration

  • Rufen Sie die CreateNotificationConfiguration API auf

    Verwenden Sie abschließend die CreateNotificationConfigurationAPI, um die Benachrichtigungskonfiguration zu erstellen, die die ausgewählten Ereignistypen an Ihr Ziel weiterleitet, das durch den Kinesis-Datenstrom dargestellt wird. Verwenden Sie im DestinationName Parameter denselben Zielnamen wie beim ersten Aufruf der CreateDestination API.

    { "EventType": "DEVICE_EVENT" "DestinationName" // This name has to be identical to the name in createDestination API "ClientToken": "string" }

Mit Managed Integrations überwachte Ereignistypen

Im Folgenden sind die Ereignistypen aufgeführt, die mit Benachrichtigungen über verwaltete Integrationen überwacht werden:

  • DEVICE_COMMAND

    • Der Status des SendManagedThingCommandAPI-Befehls. Gültige Werte sind entweder succeeded oder failed.

      { "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_COMMAND", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"1731623291671", "region":"ca-central-1", "resources":[ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718" ], "payload":{ "traceId":"1234567890abcdef0", "receivedAt":"2017-12-22T18:43:48Z", "executedAt":"2017-12-22T18:43:48Z", "result":"failed" } }
  • DEVICE_COMMAND_REQUEST

    • Die Befehlsanforderung von Web Real-Time Communication (WebRTC).

      Der WebRTC-Standard ermöglicht die Kommunikation zwischen zwei Peers. Diese Peers können Video-, Audio- und beliebige Daten in Echtzeit übertragen. Managed Integrations unterstützt WebRTC, um diese Arten von Streaming zwischen einer mobilen Kundenanwendung und dem Gerät eines Endbenutzers zu ermöglichen. Weitere Informationen zum WebRTC-Standard finden Sie unter WebRTC.

      { "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_COMMAND_REQUEST", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"1731623291671", "region":"ca-central-1", "resources":[ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718" ], "payload":{ "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0" }] }] } }
  • DEVICE_DISCOVERY_STATUS

    • Der Erkennungsstatus des Geräts.

      { "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_DISCOVERY_STATUS", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"2017-12-22T18:43:48Z", "region":"ca-central-1", "resources":[ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/6a7e8feb-b491-4cf7-a9f1-bf3703467718" ], "payload":{ "deviceCount": 1, "deviceDiscoveryId": "123", "status": "SUCCEEDED" } }
  • DEVICE_EVENT

    • Eine Benachrichtigung über das Eintreten eines Geräteereignisses.

      { "version":"1.0", "messageId":"2ed545027bd347a2b855d28f94559940", "messageType":"DEVICE_EVENT", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"1731630247280", "resources":[ "/quit/1b15b39992f9460ba82c6c04595d1f4f" ], "payload":{ "iotMiArrivalTimestamp":"2026-06-26T21:28:14.697Z", "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0", "properties":[{ "name":"ActuatorEnabled", "value":"true" }] }] }] } }

      Die DEVICE_EVENT Payload enthält die folgenden Felder:

      • iotMiArrivalTimestamp, String (ISO 8601): Der Zeitstempel, der angibt, wann das Geräteereignis vom Gerät in Managed Integrations veröffentlicht wurde. Verwenden Sie dieses Feld, um die Latenz zwischen dem Zeitpunkt zu bestimmen, zu dem das Ereignis vom Gerät generiert wurde, und dem Zeitpunkt, zu dem es von Managed Integrations empfangen wurde.

      • endpoints: Die Liste der Geräteendpunkte und ihrer aktualisierten Funktionseigenschaften.

      Das timestamp Feld im äußeren Nachrichtenumschlag gibt an, wann die Benachrichtigung an Kinesis zugestellt wurde. Das iotMiArrivalTimestamp in der Payload angegebene Datum gibt an, wann das Ereignis in Managed Integrations eingetroffen ist. Diese beiden Zeitstempel können unterschiedlich sein, wenn zwischen dem Eintreffen des Ereignisses und der Zustellung der Benachrichtigung eine Verarbeitungslatenz besteht.

  • DEVICE_LIFE_CYCLE

    Spiegelt Änderungen im Status des Gerätelebenszyklus wider (dazu gehören auch der Onboarding-Status und connected/disconnected der Status).

    • Ereignis zur Aktualisierung des Onboarding-Status.

      { "version": "1.0.0", "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "messageType": "DEVICE_LIFE_CYCLE", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2024-11-14T19:55:57.568284645Z", "region": "ca-central-1", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" ], "payload": { "deviceDetails": { "id": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "arn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "createdAt": "2024-11-14T19:55:57.515841147Z", "updatedAt": "2024-11-14T19:55:57.515841559Z" }, "status": "UNCLAIMED" } }
    • Statusereignis „Gerät verbunden“

      { "version": "1.0", "messageId": "a1b2c3d4-e5f6-g7h8-i9j0-k1l2m3n4o5p6", "messageType": "DEVICE_LIFE_CYCLE", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2024-11-14T19:55:57.568284645Z", "region": "ca-central-1", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" ], "payload": { "managedThingId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "managedThingArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "clientId": "iotmi-example-client-id", "timestamp": "1768000475344", "eventType": "connected", "sessionIdentifier": "q1w2e3r4-t5y6-u7i8-o9p0-a1s2d3f4g5h6", "principalIdentifier": "z1x2c3v4b5n6m7a8s9d0f1g2h3j4k5l6p7o8i9u0y1t2r3e4w5q6a7z8x9c0v1b2", "ipAddress": "192.0.2.100", "versionNumber": "0" } }
    • Statusereignis „Gerät getrennt“.

      { "version": "1.0", "messageId": "b2n3m4a5-s6d7-f8g9-h0j1-k2l3z4x5c6v7", "messageType": "DEVICE_LIFE_CYCLE", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2024-11-14T19:55:57.568284645Z", "region": "ca-central-1", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" ], "payload": { "managedThingId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "managedThingArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "clientId": "iotmi-example-client-id", "timestamp": "1768000492431", "eventType": "disconnected", "sessionIdentifier": "p9o8i7u6-y5t4-r3e2-w1q0-m9n8b7v6c5x4", "principalIdentifier": "a1s2d3f4g5h6j7k8l9z0x1c2v3b4n5m6q7w8e9r0t1y2u3i4o5p6a7s8d9f0g1h2", "versionNumber": "0", "disconnectReason": "CLIENT_INITIATED_DISCONNECT" } }
  • DEVICE_OTA

    • Eine OTA-Benachrichtigung für ein Gerät.

      { "version": "1.0.0", "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "messageType": "DEVICE_OTA", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2024-11-14T19:55:57.568284645Z", "region": "ca-central-1", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8" ], "payload": { "operation": "CREATE_OTA", "otaTaskId": "ota-job-abc123def456", "status": "IN_PROGRESS", "otaType": "ONE_TIME" } }
  • DEVICE_STATE

    • Eine Benachrichtigung, wenn der Status eines Geräts aktualisiert wurde.

      { "messageType": "DEVICE_STATE", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "1731623291671", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/61889008880012345678" ], "payload": { "addedStates": { "endpoints": [{ "endpointId": "nonEndpointId", "capabilities": [{ "id": "aws.OnOff", "name": "On/Off", "version": "1.0", "properties": [{ "name": "OnOff", "value": { "propertyValue": "\"onoff\"", "lastChangedAt": "2024-06-11T01:38:09.000414Z" } } ]} ]} ]} } }
  • ACCOUNT_ASSOCIATION

    • Eine Benachrichtigung, wenn sich der Status einer Kontozuweisung auf IN_PROGRESS ändert.

      { "version": "1.0.0", "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "messageType": "ACCOUNT_ASSOCIATION", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2026-01-20T23:59:34.009284802Z", "region": "ca-central-1", "resources": ["arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6"], "payload": { "traceId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "logLevel": "INFO", "resourceType": "account-association", "resourceId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "connectorDestinationId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "associationArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "state": "ASSOCIATION_IN_PROGRESS", "isServiceError": false, "isCustomerError": false, "details": "AccountAssociation State is updated to IN_PROGRESS during StartAccountAssociationRefresh" } }
    • Eine Benachrichtigung, wenn eine Kontoverknüpfung erfolgreich abgeschlossen wurde.

      { "version": "1.0.0", "messageId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "messageType": "ACCOUNT_ASSOCIATION", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2026-01-20T23:59:44.672304821Z", "region": "ca-central-1", "resources": ["arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7"], "payload": { "traceId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "logLevel": "INFO", "resourceType": "account-association", "resourceId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "connectorDestinationId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "associationArn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "state": "ASSOCIATION_SUCCEEDED", "isServiceError": false, "isCustomerError": false, "details": "AccountAssociation has completed successfully" } }
  • CONNECTOR_ERROR_REPORT

    • Diese Benachrichtigung wird gesendet, wenn ein Cloud-to-Cloud-Connector (C2C) bei der Bearbeitung einer Anfrage in Ihrem Namen einen Fehler meldet, z. B. ein Befehl oder eine Geräteerkennung, die zu einer erfolglosen Antwort geführt hat.

      { "version": "1.0.0", "messageId": "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6", "messageType": "CONNECTOR_ERROR_REPORT", "source": "aws.iotmanagedintegrations", "customerAccountId": "123456789012", "timestamp": "2026-01-20T23:59:34.009284802Z", "region": "ca-central-1", "resources": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" ], "payload": { "statusCode": 0, "resourceType": "account-association", "resourceId": [ "a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" ], "associationArn": [ "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:account-association/a1b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6" ], "connectorDestinationId": "b2c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7", "connectorDeviceId": "connectorDeviceId11597664a", "operation": "AWS.SendCommand", "operationVersion": "1.0", "traceId": "f4be7a5d55d34cc=_1", "logLevel": "ERROR", "message": "AWS.SendCommand operation failed during asynchronous invocation of the connector: Connector response exception: responseCode=xxx, responseMessage=Mocking a ValidationException with error code xxx", "managedThingId": "c3d4e5f6g7h8i9j0k1l2m3n4o5p6q7r8" } }

      Das managedThingId Feld ist enthalten, wenn es für die Anfrage gelöst werden kann. Felder ohne Wert werden in der Nutzlast weggelassen.