

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
<a name="managedintegrations-notifications"></a>

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
<a name="kinesis-setup"></a>

**Contents**
+ [Fase 1: creare un flusso di dati Amazon Kinesis](#create-data-stream)
+ [Fase 2: Creare una politica di autorizzazioni](#create-permissions-policy)
+ [Passaggio 3: accedi alla dashboard IAM e seleziona Ruoli](#navigate-roles)
+ [Fase 4: Utilizzare una politica di fiducia personalizzata](#custom-trust-policy)
+ [Passaggio 5: Applica la tua politica sulle autorizzazioni](#apply-permissions-policy)
+ [Fase 6: Inserire il nome del ruolo](#finalize-role)

Per configurare le notifiche di Amazon Kinesis per le integrazioni gestite, segui questi passaggi:

### Fase 1: creare un flusso di dati Amazon Kinesis
<a name="create-data-stream"></a>

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](https://docs.aws.amazon.com/streams/latest/dev/working-with-streams.html).

### Fase 2: Creare una politica di autorizzazioni
<a name="create-permissions-policy"></a>

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'](https://docs.aws.amazon.com/IAM/latest/UserGuide/access_policies_create-console.html#access_policies_create-json-editor)editor JSON

------
#### [ JSON ]

****  

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

------

### Passaggio 3: accedi alla dashboard IAM e seleziona Ruoli
<a name="navigate-roles"></a>

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](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create.html) nella Guida *AWS Identity and Access Management*per l'utente.

### Fase 4: Utilizzare una politica di fiducia personalizzata
<a name="custom-trust-policy"></a>

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. 

------
#### [ JSON ]

****  

  ```
  {
      "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
<a name="apply-permissions-policy"></a>

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
<a name="finalize-role"></a>
+ **Inserisci il nome del ruolo e fai clic su Crea ruolo.**

## Configura le notifiche relative alle integrazioni gestite
<a name="managedintegrations-notification-setup"></a>

**Topics**
+ [Passaggio 1: concedere all'utente le autorizzazioni per chiamare l'API CreateDestination](#user-permissions)
+ [Fase 2: Chiama l'API CreateDestination](#call-createdestination)
+ [Fase 3: Chiama l'API CreateNotificationConfiguration](#call-notification-config)

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

### Passaggio 1: concedere all'utente le autorizzazioni per chiamare l'API CreateDestination
<a name="user-permissions"></a>
+ **Concedi all'utente le autorizzazioni per chiamare l'API `CreateDestination`**

   La seguente politica definisce i requisiti per l'utente per chiamare l'[CreateDestination](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateDestination.html)API.

   Consulta [Concedere a un utente le autorizzazioni per passare un ruolo a un AWS servizio](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_use_passrole.html) nella Guida per l'*AWS Identity and Access Management*utente per ottenere le autorizzazioni passrole per le integrazioni gestite. 

------
#### [ JSON ]

****  

  ```
  {
        "Version":"2012-10-17",		 	 	 
        "Statement":[
           {
              "Effect":"Allow",
              "Action":"iam:PassRole",
              "Resource":"arn:aws:iam::123456789012: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
<a name="call-createdestination"></a>
+ **Chiama l'`CreateDestination`API**

  Dopo aver creato il flusso di dati di Amazon Kinesis e il ruolo di accesso allo stream, chiama l'[CreateDestination](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateDestination.html)API 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
<a name="call-notification-config"></a>
+ **Chiama l'`CreateNotificationConfiguration`API**

  Infine, usa l'[CreateNotificationConfiguration](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_CreateNotificationConfiguration.html)API 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'`CreateDestination`API.

  ```
  {
      "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
<a name="managedintegrations-notification-listevents"></a>

Di seguito sono riportati i tipi di eventi monitorati con notifiche di integrazioni gestite:
+ `DEVICE_COMMAND`
  + Lo stato del comando [SendManagedThingCommand](https://docs.aws.amazon.com/iot-mi/latest/APIReference/API_SendManagedThingCommand.html)API. 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.](https://webrtc.org/)

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