Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Notifiche di integrazioni gestite
Le notifiche di Managed Integrations forniscono aggiornamenti e informazioni chiave dai dispositivi. Le notifiche includono eventi relativi ai connettori, comandi dei dispositivi, eventi del ciclo di vita, aggiornamenti OTA (Over-the-Air) e segnalazioni di errori. Queste informazioni forniscono informazioni utilizzabili per creare flussi di lavoro automatizzati, intraprendere azioni immediate o archiviare dati sugli eventi per la risoluzione dei problemi.
Attualmente, solo i flussi di dati di Amazon Kinesis sono supportati come destinazione per le notifiche di integrazioni gestite. Prima di configurare le notifiche, dovrai prima configurare un flusso di dati Amazon Kinesis e consentire a Managed Integrations di accedere al flusso di dati.
Configurare Amazon Kinesis per le notifiche
Fasi di configurazione di Amazon Kinesis
Per configurare le notifiche di Amazon Kinesis for Managed Integrations, segui questi passaggi:
Fase 1: creare un flusso di dati Amazon Kinesis
Un Amazon Kinesis Data Stream può importare una grande quantità di dati in tempo reale, archiviarli in modo duraturo e renderli disponibili per l'utilizzo da parte delle applicazioni.
Per creare un flusso di dati Amazon Kinesis
-
Per creare un flusso di dati Kinesis, segui i passaggi descritti in Creare e gestire flussi di dati Kinesis.
Passaggio 2: crea una politica di autorizzazioni
Crea una politica di autorizzazioni che consenta a Managed Integrations di accedere al flusso di dati Kinesis.
Per creare una politica di autorizzazioni
-
Per creare una politica di autorizzazioni, copia la politica seguente e segui i passaggi descritti in Creare politiche utilizzando l'editor JSON
Passaggio 3: accedi alla dashboard IAM e seleziona Ruoli
Apri la dashboard IAM e fai clic su Ruoli.
Per accedere alla dashboard IAM
-
Apri la dashboard IAM e fai clic su Ruoli.
Per ulteriori informazioni, consulta la creazione di ruoli IAM nella Guida AWS Identity and Access Managementper l'utente.
Fase 4: Utilizzare una politica di fiducia personalizzata
Puoi utilizzare una policy di fiducia personalizzata per concedere a Managed Integrations l'accesso al flusso di dati Kinesis.
Per utilizzare una politica di fiducia personalizzata
-
Crea un nuovo ruolo e scegli una politica di fiducia personalizzata. Fai clic su Avanti.
La seguente politica consente a Managed Integrations di assumere il ruolo e la
Conditiondichiarazione aiuta a prevenire problemi confusi tra i deputati.
Passaggio 5: Applica la tua politica sulle autorizzazioni
Aggiungi al ruolo la politica di autorizzazione creata nel passaggio 2.
Per aggiungere una politica di autorizzazioni
-
Nella pagina Aggiungi autorizzazioni, cerca e aggiungi la politica di autorizzazione creata nel passaggio 2. Fai clic su Avanti.
Fase 6: Inserire il nome del ruolo
-
Inserisci il nome del ruolo e fai clic su Crea ruolo.
Imposta le notifiche relative alle integrazioni gestite
Fasi di configurazione delle notifiche
Per configurare le notifiche di Managed Integrations, segui questi passaggi:
Passaggio 1: concedere all'utente le autorizzazioni per chiamare l'API CreateDestination
-
Concedi all'utente le autorizzazioni per chiamare l'API
CreateDestinationLa seguente politica definisce i requisiti per l'utente per chiamare l'CreateDestinationAPI.
Consulta Concedere a un utente le autorizzazioni per passare un ruolo a un AWS servizio nella Guida per l'AWS Identity and Access Managementutente per ottenere le autorizzazioni passrole per le integrazioni gestite.
Fase 2: Chiama l'API CreateDestination
-
Chiama l'
CreateDestinationAPIDopo aver creato il flusso di dati di Amazon Kinesis e il ruolo di accesso allo stream, chiama l'CreateDestinationAPI per creare la destinazione delle notifiche a cui verranno indirizzate le notifiche. Per il
DeliveryDestinationArnparametro, usa il nuovoarnflusso di dati di Amazon Kinesis.{ "DeliveryDestinationArn": "Your Kinesis arn" "DeliveryDestinationType": "KINESIS" "Name": "DestinationName" "ClientToken":"string""RoleArn": "arn:aws:iam::accountID:role/ROLE_CREATED_IN_PREVIOUS_STEP" }Nota
ClientTokenè un token di idempotenza. Se riprovi una richiesta completata correttamente inizialmente utilizzando lo stesso token client e gli stessi parametri, il nuovo tentativo avrà esito positivo senza eseguire ulteriori azioni.
Fase 3: Chiama l'API CreateNotificationConfiguration
-
Chiama l'
CreateNotificationConfigurationAPIInfine, usa l'CreateNotificationConfigurationAPI per creare la configurazione di notifica che indirizza i tipi di eventi scelti verso la tua destinazione rappresentata dal flusso di dati Kinesis. Nel
DestinationNameparametro, utilizza lo stesso nome di destinazione utilizzato per la chiamata iniziale all'CreateDestinationAPI.{ "EventType": "DEVICE_EVENT" "DestinationName" // This name has to be identical to the name in createDestination API "ClientToken":"string"}
Tipi di eventi monitorati con Managed Integrations
Di seguito sono riportati i tipi di eventi monitorati con le notifiche di Managed Integrations:
-
DEVICE_COMMAND-
Lo stato del comando SendManagedThingCommandAPI. I valori validi sono
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 richiesta di comando da Web Real-Time Communication (WebRTC).
Lo standard WebRTC consente la comunicazione tra due peer. Questi peer possono trasmettere video, audio e dati arbitrari in tempo reale. Managed Integrations supporta WebRTC per abilitare questi tipi di streaming tra un'applicazione mobile del cliente e il dispositivo di un utente finale. Per ulteriori informazioni sullo standard WebRTC, vedere 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-
Lo stato di rilevamento 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-
Una notifica del verificarsi di un evento relativo al 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" }] }] }] } }Il
DEVICE_EVENTpayload contiene i seguenti campi:-
iotMiArrivalTimestamp, String (ISO 8601): il timestamp che indica quando l'evento del dispositivo è stato pubblicato dal dispositivo in Managed Integrations. Utilizzate questo campo per determinare la latenza tra il momento in cui l'evento è stato generato dal dispositivo e il momento in cui Managed Integrations lo ha ricevuto. -
endpoints: l'elenco degli endpoint dei dispositivi e le relative proprietà di funzionalità aggiornate.
Il
timestampcampo nella busta esterna del messaggio indica quando la notifica è stata consegnata a Kinesis. Il payloadiotMiArrivalTimestampnel payload indica quando l'evento è arrivato in Managed Integrations. Questi due timestamp possono differire in caso di latenza di elaborazione tra l'arrivo dell'evento e l'invio della notifica. -
-
-
DEVICE_LIFE_CYCLERiflette i cambiamenti nello stato del ciclo di vita del dispositivo (inclusi lo stato e lo stato di onboarding). connected/disconnected
-
Evento di aggiornamento dello stato di onboarding.
{ "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 sullo stato della connessione del dispositivo.
{ "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 di stato di disconnessione 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 notifica 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 notifica quando lo stato di un dispositivo è stato aggiornato.
{ "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 notifica quando lo stato di associazione di un account cambia in 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 notifica quando l'associazione di un account viene completata correttamente.
{ "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-
Questa notifica viene inviata quando un connettore cloud-to-cloud (C2C) segnala un errore durante l'elaborazione di una richiesta per conto dell'utente, ad esempio il rilevamento di un comando o di un dispositivo che ha restituito una risposta non riuscita.
{ "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" } }Il
managedThingIdcampo viene incluso quando può essere risolto per la richiesta. I campi senza un valore vengono omessi dal payload.
-