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 las integraciones gestionadas proporcionan actualizaciones e información clave de los dispositivos. Las notificaciones incluyen eventos de conectores, comandos de dispositivos, eventos del ciclo de vida, actualizaciones de OTA (Over-the-Air) 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
Pasos de configuración de Amazon Kinesis
Para configurar las notificaciones de Amazon Kinesis for Managed Integrations, siga estos pasos:
Paso 1: Creación de un flujo 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
-
Para crear una transmisión de datos de Kinesis, siga los pasos descritos en Crear y administrar transmisiones de datos de 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
Paso 3: Dirígete al panel de control de IAM y selecciona Roles
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
Conditiondeclaración ayuda a evitar problemas confusos.
Paso 5: aplique su 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
Pasos para configurar las notificaciones
Para configurar las notificaciones de las integraciones gestionadas, sigue estos pasos:
Paso 1: Otorgue permisos al usuario para llamar a la API CreateDestination
-
Otorgue permisos al usuario para llamar a la
CreateDestinationAPILa 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.
Paso 2: Llama a la API CreateDestination
-
Llama a la
CreateDestinationAPIUna 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
DeliveryDestinationArnparámetro, utilice elarnde 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
CreateNotificationConfigurationAPIPor ú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
DestinationNameparámetro, utilice el mismo nombre de destino que cuando llamó inicialmente a laCreateDestinationAPI.{ "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
succeededofailed.{ "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-
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. Managed Integrations es compatible 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":"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-
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":{ "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" }] }] }] } }La
DEVICE_EVENTcarga útil contiene los siguientes campos:-
iotMiArrivalTimestamp, String (ISO 8601): marca de tiempo que indica cuándo el dispositivo publicó el evento del dispositivo en Managed Integrations. Utilice este campo para determinar la latencia entre el momento en que el dispositivo generó el evento y el momento en que Managed Integrations lo recibió. -
endpoints: la lista de puntos finales de los dispositivos y sus propiedades de capacidad actualizadas.
El
timestampcampo del sobre exterior del mensaje indica cuándo se envió la notificación a Kinesis.iotMiArrivalTimestampEn la carga útil se indica cuándo llegó el evento a Managed Integrations. Estas dos marcas temporales pueden diferir si hay una latencia de procesamiento entre la llegada del evento y la entrega de la notificación. -
-
-
DEVICE_LIFE_CYCLERefleja los cambios en el estado del ciclo de vida del dispositivo (esto incluye el estado de incorporación y connected/disconnected el estado).
-
Evento de actualización del estado de incorporación.
{ "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" } } -
Evento de estado del dispositivo conectado.
{ "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" } } -
Evento de estado de desconexión del dispositivo.
{ "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-
Una notificación OTA del dispositivo.
{ "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-
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" } } ]} ]} ]} } }
-
-
ACCOUNT_ASSOCIATION-
Una notificación cuando el estado de la asociación de una cuenta cambia a IN_PROGRESS.
{ "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" } } -
Una notificación cuando la asociación de una cuenta se completa correctamente.
{ "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-
Esta notificación se envía cuando un conector de nube a nube (C2C) informa de un error al procesar una solicitud en tu nombre, por ejemplo, cuando se detecta un comando o un dispositivo que no responde correctamente.
{ "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" } }El
managedThingIdcampo se incluye cuando se puede resolver la solicitud. Los campos sin un valor se omiten de la carga útil.
-