Notifications d'intégrations gérées - Intégrations gérées pour AWS IoT Device Management

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.

Notifications d'intégrations gérées

Les notifications d'intégrations gérées fournissent des mises à jour et des informations clés sur les appareils. Les notifications incluent les événements liés aux connecteurs, les commandes des appareils, les événements liés au cycle de vie, les mises à jour OTA (Over-the-Air) et les rapports d'erreurs. Ces informations fournissent des informations exploitables pour créer des flux de travail automatisés, prendre des mesures immédiates ou stocker des données d'événements à des fins de dépannage.

Actuellement, seuls les flux de données Amazon Kinesis sont pris en charge en tant que destination pour les notifications d'intégrations gérées. Vous devez d'abord configurer un flux de données Amazon Kinesis et autoriser les intégrations gérées à accéder au flux de données avant de configurer les notifications.

Configurer Amazon Kinesis pour les notifications

Pour configurer Amazon Kinesis pour les notifications d'intégrations gérées, procédez comme suit :

Étape 1 : créer un flux de données Amazon Kinesis

Un flux de données Amazon Kinesis peut ingérer une grande quantité de données en temps réel, les stocker de manière durable et les mettre à la disposition des applications.

Pour créer un flux de données Amazon Kinesis

Étape 2 : créer une politique d'autorisation

Créez une politique d'autorisation qui autorise les intégrations gérées à accéder à votre flux de données Kinesis.

Pour créer une politique d'autorisations
  • Pour créer une politique d'autorisation, copiez la politique ci-dessous et suivez les étapes décrites dans Création de politiques à l'aide de l'éditeur JSON

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

Ouvrez le tableau de bord IAM et cliquez sur Rôles.

Pour accéder au tableau de bord IAM
  • Ouvrez le tableau de bord IAM et cliquez sur Rôles.

    Pour plus d'informations, consultez la section Création de rôles IAM dans le guide de l'AWS Identity and Access Managementutilisateur.

Étape 4 : Utiliser une politique de confiance personnalisée

Vous pouvez utiliser une politique de confiance personnalisée pour accorder aux intégrations gérées l'accès au flux de données Kinesis.

Pour utiliser une politique de confiance personnalisée
  • Créez un nouveau rôle et choisissez Politique de confiance personnalisée. Cliquez sur Suivant.

    La politique suivante permet aux intégrations gérées d'assumer ce rôle, et la Condition déclaration permet d'éviter toute confusion liée aux adjoints.

    { "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:*" } } } ] }

Étape 5 : appliquez votre politique d'autorisation

Ajoutez au rôle la politique d'autorisation que vous avez créée à l'étape 2.

Pour ajouter une politique d'autorisation
  • Sur la page Ajouter des autorisations, recherchez et ajoutez la politique d'autorisation que vous avez créée à l'étape 2. Cliquez sur Suivant.

Étape 6 : Entrez un nom de rôle

  • Entrez un nom de rôle et cliquez sur Créer un rôle.

Configurer les notifications d'intégrations gérées

Pour configurer les notifications d'intégrations gérées, procédez comme suit :

Étape 1 : autoriser l'utilisateur à appeler l' CreateDestination API

  • Autoriser l'utilisateur à appeler l'CreateDestinationAPI

    La politique suivante définit les conditions requises pour que l'utilisateur appelle l'CreateDestinationAPI.

    Consultez la section Accorder à un utilisateur l'autorisation de transmettre un rôle à un AWS service dans le Guide de AWS Identity and Access Managementl'utilisateur pour obtenir des autorisations de transfert pour les intégrations gérées.

    { "Version":"2012-10-17", "Statement":[ { "Effect":"Allow", "Action":"iam:PassRole", "Resource":"arn:aws:iam::accountID:role/ROLE_CREATED_IN_PREVIOUS_STEP", "Condition":{ "StringEquals":{ "iam:PassedToService":"iotmanagedintegrations.amazonaws.com" } } }, { "Effect":"Allow", "Action":"iotmanagedintegrations:CreateDestination", "Resource":"*" } ] }

Étape 2 : appeler l' CreateDestination API

  • Appelez l'CreateDestinationAPI

    Après avoir créé votre flux de données Amazon Kinesis et votre rôle d'accès au flux, appelez l'CreateDestinationAPI pour créer votre destination de notification vers laquelle les notifications seront acheminées. Pour le DeliveryDestinationArn paramètre, utilisez celui arn de votre nouveau flux de données Amazon Kinesis.

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

    ClientTokenest un jeton d'idempuissance. Si vous réessayez une demande qui s'est initialement terminée avec succès en utilisant le même jeton client et les mêmes paramètres, la nouvelle tentative aboutira sans aucune autre action.

Étape 3 : appeler l' CreateNotificationConfiguration API

  • Appelez l'CreateNotificationConfigurationAPI

    Enfin, utilisez l'CreateNotificationConfigurationAPI pour créer la configuration des notifications qui achemine les types d'événements choisis vers votre destination représentée par le flux de données Kinesis. Dans le DestinationName paramètre, utilisez le même nom de destination que lorsque vous avez initialement appelé l'CreateDestinationAPI.

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

Types d'événements surveillés avec des intégrations gérées

Les types d'événements surveillés par les notifications d'intégrations gérées sont les suivants :

  • DEVICE_COMMAND

    • État de la commande SendManagedThingCommandAPI. Les valeurs valides sont succeeded ou failed.

      { "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_COMMAND", "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":{ "traceId":"1234567890abcdef0", "receivedAt":"2017-12-22T18:43:48Z", "executedAt":"2017-12-22T18:43:48Z", "result":"failed" } }
  • DEVICE_COMMAND_REQUEST

    • La demande de commande de Web Real-Time Communication (WebRTC).

      La norme WebRTC permet la communication entre deux pairs. Ces pairs peuvent transmettre des données vidéo, audio et arbitraires en temps réel. Les intégrations gérées prennent en charge le WebRTC pour permettre ce type de streaming entre l'application mobile d'un client et l'appareil de l'utilisateur final. Pour plus d'informations sur la norme WebRTC, voir WebRTC.

      { "version":"0", "messageId":"6a7e8feb-b491-4cf7-a9f1-bf3703467718", "messageType":"DEVICE_COMMAND_REQUEST", "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":{ "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0" }] }] } }
  • DEVICE_DISCOVERY_STATUS

    • État de découverte de l'appareil.

      { "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

    • Notification d'un événement survenant sur un appareil.

      { "version":"1.0", "messageId":"2ed545027bd347a2b855d28f94559940", "messageType":"DEVICE_EVENT", "source":"aws.iotmanagedintegrations", "customerAccountId":"123456789012", "timestamp":"1731630247280", "resources":[ "/quit/1b15b39992f9460ba82c6c04595d1f4f" ], "payload":{ "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0", "properties":[{ "name":"ActuatorEnabled", "value":"true" }] }] }] } }
  • DEVICE_LIFE_CYCLE

    • État du cycle de vie de l'appareil.

      { "version": "1.0.0", "messageId": "8d1e311a473f44f89d821531a0907b05", "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/d5c280b423a042f3933eed09cf408657" ], "payload": { "deviceDetails": { "id": "d5c280b423a042f3933eed09cf408657", "arn": "arn:aws:iotmanagedintegrations:ca-central-1:123456789012:managed-thing/d5c280b423a042f3933eed09cf408657", "createdAt": "2024-11-14T19:55:57.515841147Z", "updatedAt": "2024-11-14T19:55:57.515841559Z" }, "status": "UNCLAIMED" } }
  • DEVICE_OTA

    • Une notification OTA de l'appareil.

  • DEVICE_STATE

    • Une notification lorsque l'état d'un appareil a été mis à jour.

      { "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" } } ]} ]} ]} } }