

Avviso di fine del supporto: il 15 dicembre 2025, AWS terminerà il supporto per AWS IoT Analytics. Dopo il 15 dicembre 2025, non potrai più accedere alla AWS IoT Analytics console o AWS IoT Analytics alle risorse. Per ulteriori informazioni, consulta [AWS IoT Analytics Fine del supporto](https://docs.aws.amazon.com/iotanalytics/latest/userguide/iotanalytics-end-of-support.html).

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

# Inserimento di dati in AWS IoT Analytics
<a name="ingest-data"></a>

Se disponi di un canale che indirizza i dati verso una pipeline che archivia i dati in un data store dove possono essere interrogati, allora sei pronto per inviare i dati dei messaggi. AWS IoT Analytics Qui mostriamo due metodi per inserire i dati. AWS IoT Analytics Puoi inviare un messaggio utilizzando il broker di AWS IoT messaggi o utilizzare l' AWS IoT Analytics `BatchPutMessage`API.

**Topics**
+ [Utilizzando il broker di AWS IoT messaggi](#iot-message-broker)
+ [Utilizzo dell'API BatchPutMessage](#batchputmessage-api)

## Utilizzando il broker di AWS IoT messaggi
<a name="iot-message-broker"></a>

Per utilizzare il broker di AWS IoT messaggi, è necessario creare una regola utilizzando il motore di AWS IoT regole. La regola indirizza i messaggi con un argomento specifico in AWS IoT Analytics. Prima di tutto, però, questa regola richiede la creazione di un ruolo che conceda le autorizzazioni necessarie. 

### Creazione di un ruolo IAM
<a name="create-iam-role"></a>

Per far sì che AWS IoT i messaggi vengano instradati verso un AWS IoT Analytics canale, devi impostare una regola. Ma prima, devi creare un ruolo IAM che conceda a tale regola l'autorizzazione a inviare i dati dei messaggi a un AWS IoT Analytics canale.

Per creare un ruolo, esegui il comando seguente.

```
aws iam create-role --role-name myAnalyticsRole --assume-role-policy-document file://arpd.json
```

Il contenuto del `arpd.json` file dovrebbe essere simile al seguente.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Principal": {
                "Service": "iot.amazonaws.com"
            },
            "Action": "sts:AssumeRole"
        }
    ]
}
```

------

Quindi, allega un documento di policy al ruolo.

```
aws iam put-role-policy --role-name myAnalyticsRole --policy-name myAnalyticsPolicy --policy-document file://pd.json
```

Il contenuto del `pd.json` file dovrebbe essere simile al seguente.

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": "iotanalytics:BatchPutMessage",
            "Resource": [
                "arn:aws:iotanalytics:{{us-east-1}}:{{111122223333}}:channel/{{your-channel}}"
            ]
        }
    ]
}
```

------

### Creare una AWS IoT regola
<a name="create-iot-rule"></a>

Crea una AWS IoT regola che invii messaggi al tuo canale.

```
aws iot create-topic-rule --rule-name analyticsTestRule --topic-rule-payload file://rule.json
```

Il contenuto del `rule.json` file dovrebbe essere simile al seguente.

```
{
    "sql": "SELECT * FROM 'iot/test'",
    "ruleDisabled": false,
    "awsIotSqlVersion": "2016-03-23",
    "actions": [ {
        "iotAnalytics": {
            "channelName": "mychannel",
            "roleArn": "arn:aws:iam::{{your-account-number}}:role/myAnalyticsRole"
        }
    } ]
}
```

Sostituisci `iot/test` con l'argomento MQTT dei messaggi che devono essere inoltrati. Sostituisci il nome del canale e il ruolo con quelli creati nelle sezioni precedenti.

### Invio di messaggi MQTT a AWS IoT Analytics
<a name="send-mqtt-messages"></a>

Dopo aver unito una regola a un canale, un canale a una pipeline e una pipeline a un data store, tutti i dati corrispondenti alla regola vengono ora trasmessi AWS IoT Analytics al data store pronti per essere interrogati. Per verificarlo, puoi usare la AWS IoT console per inviare un messaggio.

**Nota**  
I nomi dei campi dei payload (dati) dei messaggi a cui invii AWS IoT Analytics.  
Devono contenere solo caratteri alfanumerici e trattini bassi (\_); non sono ammessi altri caratteri speciali.
Devono iniziare con un carattere alfabetico o con un solo trattino basso (\_).
Non possono contenere trattini (-).
In termini di espressioni regolari: "`^[A-Za-z_]([A-Za-z0-9]*|[A-Za-z0-9][A-Za-z0-9_]*)$`». 
Non può contenere più di 255 caratteri
Non prevedono una distinzione tra lettere maiuscole e minuscole. I campi denominati `foo` e `FOO` presenti nello stesso payload sono considerati duplicati.
Ad esempio, `{"temp_01": 29}` o `{"_temp_01": 29}` sono validi, ma `{"temp-01": 29}`, `{"01_temp": 29}` o `{"__temp_01": 29}` non lo sono nei payload dei messaggi.

1. Nel riquadro di navigazione a sinistra della [console AWS IoT](https://console.aws.amazon.com/iot/) scegli **Test**.  
![Schermata della pagina «Monitor» nella console. AWS IoT](http://docs.aws.amazon.com/it_it/iotanalytics/latest/userguide/images/choose-test.png)

1. Nella sezione Publish (Pubblica) della pagina **MQTT client** (Client MQTT) digita ** in **Specify a topic**iot/test** (Specifica un argomento). Nella sezione relativa al payload dei messaggi, verifica che siano presenti i seguenti contenuti JSON o digitali in caso contrario.

   ```
   {
       "message": "Hello from the IoT console"
   }
   ```

1. Scegli **Publish to topic (Pubblica nell'argomento)**.  
![Schermata della pagina «Test» nella console. AWS IoT](http://docs.aws.amazon.com/it_it/iotanalytics/latest/userguide/images/publish.png)

   In tal modo viene pubblicato un messaggio che viene instradato nel datastore creato in precedenza. 

## Utilizzo dell'API BatchPutMessage
<a name="batchputmessage-api"></a>

Un altro modo per inserire i dati dei messaggi AWS IoT Analytics consiste nell'utilizzare il comando `BatchPutMessage` API. Questo metodo non richiede l'impostazione di una AWS IoT regola per indirizzare i messaggi con un argomento specifico al tuo canale. Tuttavia, richiede che il dispositivo che invia i messaggi data/messages al canale sia in grado di eseguire il software creato con l' AWS SDK o sia in grado di utilizzare la chiamata AWS CLI `BatchPutMessage` to. 

1. Crea un file `messages.json` che contenga i messaggi da inviare (in questo esempio viene inviato un solo messaggio).

   ```
   [
       { "messageId": "message01", "payload": "{ \"message\": \"Hello from the CLI\" }" }
   ]
   ```

1. Esegui il comando `batch-put-message`.

   ```
   aws iotanalytics batch-put-message  --channel-name mychannel  --messages file://messages.json --cli-binary-format raw-in-base64-out
   ```

   Se non ci sono errori, viene visualizzato il seguente output.

   ```
   {
       "batchPutMessageErrorEntries": []
   }
   ```