Notifiche di integrazioni gestite - Integrazioni gestite per AWS IoT Device Management

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 integrazioni gestite 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 utili 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, devi prima configurare un flusso di dati Amazon Kinesis e consentire alle integrazioni gestite di accedere al flusso di dati.

Configurare Amazon Kinesis per le notifiche

Per configurare le notifiche di Amazon Kinesis per le integrazioni gestite, 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

Fase 2: Creare una politica di autorizzazioni

Crea una politica di autorizzazioni che consenta alle integrazioni gestite 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

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

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 alle integrazioni gestite 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 alle integrazioni gestite di assumere il ruolo e la Condition dichiarazione aiuta a prevenire problemi confusi tra i deputati.

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

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.

Configura le notifiche relative alle integrazioni gestite

Per configurare le notifiche relative alle integrazioni gestite, segui questi passaggi:

Passaggio 1: concedere all'utente le autorizzazioni per chiamare l'API CreateDestination

  • Concedi all'utente le autorizzazioni per chiamare l'API CreateDestination

    La 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.

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

Fase 2: Chiama l'API CreateDestination

  • Chiama l'CreateDestinationAPI

    Dopo 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 DeliveryDestinationArn parametro, usa il nuovo arn flusso 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'CreateNotificationConfigurationAPI

    Infine, 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 DestinationName parametro, 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 integrazioni gestite

Di seguito sono riportati i tipi di eventi monitorati con notifiche di integrazioni gestite:

  • DEVICE_COMMAND

    • Lo stato del comando SendManagedThingCommandAPI. I valori validi sono 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 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. Le integrazioni gestite supportano 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":"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

    • 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":{ "endpoints":[{ "endpointId":"1", "capabilities":[{ "id":"aws.DoorLock", "name":"Door Lock", "version":"1.0", "properties":[{ "name":"ActuatorEnabled", "value":"true" }] }] }] } }
  • DEVICE_LIFE_CYCLE

    • Lo stato del ciclo di vita 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 notifica OTA del dispositivo.

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