

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

# Dimostra la pubblicazione di messaggi con AWS IoT Device Client
<a name="iot-dc-testconn-publish"></a>

Le procedure in questa sezione mostrano come il AWS IoT Device Client può inviare messaggi MQTT predefiniti e personalizzati.

Queste istruzioni di policy nella policy creata nella fase precedente per questi esercizi consentono al Raspberry Pi di eseguire queste azioni:
+ 

**`iot:Connect`**  
Consente la connessione al client denominato`PubSubTestThing`, il Raspberry Pi su cui è in esecuzione il AWS IoT Device Client.

  ```
      {
        "Effect": "Allow",
        "Action": [
          "iot:Connect"
        ],
        "Resource": [
          "arn:aws:iot:us-west-2:57EXAMPLE833:client/PubSubTestThing"
        ]
      }
  ```
+ 

**`iot:Publish`**  
Fornire al Raspberry Pi l'autorizzazione a pubblicare messaggi con un argomento MQTT di `test/dc/pubtopic`.

  ```
      {
        "Effect": "Allow",
        "Action": [
          "iot:Publish"
        ],
        "Resource": [
          "arn:aws:iot:us-west-2:57EXAMPLE833:topic/test/dc/pubtopic"
        ]
      }
  ```

  L'azione `iot:Publish` consente di pubblicare agli argomenti MQTT elencati nell'array di Risorsa. Il *contenuto* di tali messaggi non è controllato dall'istruzione di policy.

## Pubblica il messaggio predefinito utilizzando il AWS IoT Device Client
<a name="iot-dc-testconn-publish-default"></a>

Questa procedura esegue il AWS IoT Device Client in modo da pubblicare un singolo messaggio MQTT predefinito che il **client di test MQTT riceve** e visualizza.

**Per inviare il messaggio MQTT predefinito dal Device Client AWS IoT**

1. Assicurati che sia la finestra terminale collegata al computer host locale sia connessa al tuo Raspberry Pi e che la finestra con il **client MQTT di test** sia visibile durante l'esecuzione di questa procedura.

1. Nella finestra del terminale, inserisci questi comandi per eseguire il AWS IoT Device Client utilizzando il file di configurazione creato in. [Creare il file di configurazione](iot-dc-install-configure.md#iot-dc-install-dc-configure-step1)

   ```
   cd ~/aws-iot-device-client/build
   ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-config.json
   ```

   Nella finestra del terminale, il AWS IoT Device Client visualizza i messaggi informativi e gli eventuali errori che si verificano durante l'esecuzione.

   Se nella finestra del terminale non vengono visualizzati errori, esamina il **client MQTT di test**.

1. In **MQTT test client** (Client MQTT di test), nella finestra **Subscriptions** (Sottoscrizioni) viene visualizzato il messaggio *Hello World\!* inviato all'argomento del messaggio `test/dc/pubtopic`.

1. Se il AWS IoT Device Client non mostra errori e viene visualizzato *Hello World\!* inviato al `test/dc/pubtopic` messaggio nel **client di test MQTT**, hai dimostrato che la connessione è riuscita.

1. Nella finestra del terminale, digitate **^C** (Ctrl-C) per fermare il AWS IoT Device Client.

Dopo aver dimostrato che AWS IoT Device Client ha pubblicato il messaggio MQTT predefinito, puoi continuare con. [Pubblica un messaggio personalizzato utilizzando AWS IoT Device Client](#iot-dc-testconn-publish-custom)

## Pubblica un messaggio personalizzato utilizzando AWS IoT Device Client
<a name="iot-dc-testconn-publish-custom"></a>

Le procedure di questa sezione creano un messaggio MQTT personalizzato e quindi eseguono AWS IoT Device Client in modo che pubblichi il messaggio MQTT personalizzato una volta per essere ricevuto e visualizzato dal **client MQTT di test**.

### Crea un messaggio MQTT personalizzato per il Device Client AWS IoT
<a name="iot-dc-testconn-publish-custom-create"></a>

Esegui questi passaggi nella finestra terminale del computer host locale connesso al Raspberry Pi.

**Per creare un messaggio personalizzato da pubblicare sul AWS IoT Device Client**

1. Nella finestra terminale, apri un editor di testo, ad esempio `nano`.

1. Nell'editor di testo, copia e incolla il documento JSON riportato di seguito. Questo sarà il payload del messaggio MQTT pubblicato da AWS IoT Device Client.

   ```
   {
     "temperature": 28,
     "humidity": 80,
     "barometer": 1013,
     "wind": {
       "velocity": 22,
       "bearing": 255
     }
   }
   ```

1. Salva il contenuto dell'editor di testo come **\~/messages/sample-ws-message.json**. 

1. Inserisci il comando seguente per impostare le autorizzazioni del file di messaggio appena creato.

   ```
   chmod 600 ~/messages/*
   ```

**Per creare un file di configurazione per il AWS IoT Device Client da utilizzare per inviare il messaggio personalizzato**

1. Nella finestra del terminale, in un editor di testo come`nano`, apri il file di configurazione esistente di AWS IoT Device Client:. **\~/dc-configs/dc-pubsub-config.json** 

1. Modifica l'oggetto `samples` in questo modo. Nessun'altra parte di questo file deve essere modificata.

   ```
     "samples": {
       "pub-sub": {
         "enabled": true,
         "publish-topic": "test/dc/pubtopic",
         "publish-file": "~/messages/sample-ws-message.json",
         "subscribe-topic": "test/dc/subtopic",
         "subscribe-file": "~/.aws-iot-device-client/log/pubsub_rx_msgs.log"
   ```

1. Salva il contenuto dell'editor di testo come **\~/dc-configs/dc-pubsub-custom-config.json**. 

1. Esegui questo comando per impostare le autorizzazioni sul nuovo file di configurazione.

   ```
   chmod 644 ~/dc-configs/dc-pubsub-custom-config.json
   ```

### Pubblica il messaggio MQTT personalizzato utilizzando Device Client AWS IoT
<a name="iot-dc-testconn-publish-custom-publish"></a>

Questa modifica influisce solo sui *contenuti* del payload del messaggio MQTT, quindi la policy attuale continuerà a funzionare. Tuttavia, se l'*argomento MQTT* (come definito dal valore `publish-topic` in `~/dc-configs/dc-pubsub-custom-config.json`) è stato cambiato, anche l'istruzione di policy `iot::Publish` dovrebbe essere modificata per consentire a Raspberry Pi di pubblicare sul nuovo argomento MQTT.

**Per inviare il messaggio MQTT dal Device Client AWS IoT**

1. Assicurati che sia la finestra terminale che la finestra con il **client MQTT di test** siano visibili durante l'esecuzione di questa procedura. Inoltre, assicurati che il tuo **client MQTT di test** abbia una sottoscrizione ancora attiva per il filtro di argomenti **\#**. Se non lo è, effettua nuovamente la sottoscrizione al filtro argomento**\#**.

1. Nella finestra terminale, immettere questi comandi per eseguire AWS IoT Device Client utilizzando il file di configurazione creato in [Creare il file di configurazione](iot-dc-install-configure.md#iot-dc-install-dc-configure-step1).

   ```
   cd ~/aws-iot-device-client/build
   ./aws-iot-device-client --config-file ~/dc-configs/dc-pubsub-custom-config.json
   ```

   Nella finestra del terminale, il AWS IoT Device Client visualizza i messaggi informativi e gli eventuali errori che si verificano durante l'esecuzione.

   Se nella finestra del terminale non vengono visualizzati errori, esaminare il client di test MQTT.

1. Nel **client MQTT di test**, nella finestra **Subscriptions (Sottoscrizioni)**, viene visualizzato il payload del messaggio personalizzato inviato all'argomento del messaggio `test/dc/pubtopic`.

1. Se il AWS IoT Device Client non mostra errori e vedi il payload di messaggi personalizzati che hai pubblicato nel `test/dc/pubtopic` messaggio nel **client di test MQTT**, hai pubblicato un messaggio personalizzato con successo.

1. Nella finestra del terminale, digitate **^C** (Ctrl-C) per arrestare il Device Client. AWS IoT 

Dopo aver dimostrato che AWS IoT Device Client ha pubblicato un payload di messaggi personalizzato, puoi continuare a farlo. [Dimostra l'iscrizione ai messaggi con Device Client AWS IoT](iot-dc-testconn-subscribe.md)