Notificaciones de integraciones gestionadas - Integraciones gestionadas para AWS IoT Device Management

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Notificaciones de integraciones gestionadas

Las notificaciones de integraciones gestionadas proporcionan actualizaciones e información clave desde los dispositivos. Las notificaciones incluyen eventos de conectores, comandos de dispositivos, eventos del ciclo de vida, actualizaciones de OTA (inalámbricas) e informes de errores. Esta información proporciona información útil para crear flujos de trabajo automatizados, tomar medidas inmediatas o almacenar datos de eventos para solucionar problemas.

Actualmente, solo se admiten las transmisiones de datos de Amazon Kinesis como destino para las notificaciones de integraciones gestionadas. Primero tendrá que configurar una transmisión de datos de Amazon Kinesis y permitir que las integraciones gestionadas accedan a la transmisión de datos antes de configurar las notificaciones.

Configurar Amazon Kinesis para las notificaciones

Para configurar las notificaciones de Amazon Kinesis para integraciones gestionadas, siga estos pasos:

Paso 1: Crear una transmisión de datos de Amazon Kinesis

Un Amazon Kinesis Data Stream puede ingerir una gran cantidad de datos en tiempo real, almacenarlos de forma duradera y ponerlos a disposición de las aplicaciones para que los consuman.

Para crear una transmisión de datos de Amazon Kinesis

Paso 2: Cree una política de permisos

Cree una política de permisos que permita a las integraciones gestionadas acceder a su transmisión de datos de Kinesis.

Creación de una política de permisos
  • Para crear una política de permisos, copie la política que aparece a continuación y siga los pasos descritos en Crear políticas con el editor JSON

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

Abre el panel de IAM y haz clic en Roles.

Para ir al panel de control de IAM
  • Abre el panel de IAM y haz clic en Roles.

    Para obtener más información, consulte la creación de roles de IAM en la Guía del AWS Identity and Access Managementusuario.

Paso 4: Utilice una política de confianza personalizada

Puede utilizar una política de confianza personalizada para conceder a las integraciones gestionadas acceso a la transmisión de datos de Kinesis.

Para usar una política de confianza personalizada
  • Cree un nuevo rol y elija Política de confianza personalizada. Haga clic en Siguiente.

    La siguiente política permite que las integraciones gestionadas asuman esa función, y la Condition declaración ayuda a evitar problemas confusos con los diputados.

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

Paso 5: Aplica tu política de permisos

Añada al rol la política de permisos que creó en el paso 2.

Para añadir una política de permisos
  • En la página Añadir permisos, busque y añada la política de permisos que creó en el paso 2. Haga clic en Siguiente.

Paso 6: Introduzca el nombre de un rol

  • Introduzca un nombre de función y haga clic en Crear función.

Configure las notificaciones de integraciones gestionadas

Para configurar las notificaciones de integraciones gestionadas, sigue estos pasos:

Paso 1: Otorga permisos al usuario para llamar a la API CreateDestination

  • Otorgue permisos al usuario para llamar a la CreateDestination API

    La siguiente política define los requisitos para que el usuario llame a la CreateDestinationAPI.

    Consulte Conceder a un usuario permisos para transferir un rol a un AWS servicio en la Guía del AWS Identity and Access Managementusuario para obtener permisos de paso para las integraciones gestionadas.

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

Paso 2: Llama a la API CreateDestination

  • Llama a la CreateDestination API

    Una vez que haya creado su función de transmisión de datos y acceso a la transmisión de Amazon Kinesis, llame a la CreateDestinationAPI para crear el destino de las notificaciones al que se enviarán las notificaciones. Para el DeliveryDestinationArn parámetro, utilice el arn de su nueva transmisión de datos de Amazon Kinesis.

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

    ClientTokenes un token de idempotencia. Si reintentas una solicitud que se completó correctamente inicialmente con el mismo token de cliente y los mismos parámetros, el reintento se realizará correctamente sin realizar ninguna otra acción.

Paso 3: Llama a la API CreateNotificationConfiguration

  • Llama a la CreateNotificationConfiguration API

    Por último, utilice la CreateNotificationConfigurationAPI para crear la configuración de notificaciones que dirija los tipos de eventos elegidos a su destino representado por la transmisión de datos de Kinesis. En el DestinationName parámetro, utilice el mismo nombre de destino que cuando llamó inicialmente a la CreateDestination API.

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

Tipos de eventos monitoreados con integraciones administradas

Los siguientes son los tipos de eventos monitoreados con las notificaciones de integraciones administradas:

  • DEVICE_COMMAND

    • El estado del comando de la SendManagedThingCommandAPI. Los valores válidos son succeeded o 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 solicitud de comando de Web Real-Time Communication (WebRTC).

      El estándar WebRTC permite la comunicación entre dos pares. Estos pares pueden transmitir vídeo, audio y datos arbitrarios en tiempo real. Las integraciones gestionadas son compatibles con WebRTC para permitir estos tipos de transmisión entre la aplicación móvil de un cliente y el dispositivo de un usuario final. Para obtener más información sobre el estándar WebRTC, consulte 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

    • El estado de detección del dispositivo.

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

    • Notificación de que se está produciendo un evento en el dispositivo.

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

    • El estado del ciclo de vida del dispositivo.

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

    • Una notificación OTA del dispositivo.

  • DEVICE_STATE

    • Una notificación cuando se ha actualizado el estado de un dispositivo.

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