

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

# Guida introduttiva ai AWS IoT Core tutorial
<a name="iot-gs"></a>

Che tu sia alle prime armi con l'IoT o che tu abbia anni di esperienza, queste risorse presentano i AWS IoT concetti e i termini che ti aiuteranno a iniziare a utilizzarlo AWS IoT.
+ **Guarda** all'interno AWS IoT e ai suoi componenti[Come AWS IoT funziona](aws-iot-how-it-works.md).
+ [Ulteriori **informazioni** su AWS IoT](aws-iot-learn-more.md) dalla nostra collezione di materiali e video per la formazione. Questo argomento include anche un elenco di servizi a cui AWS IoT può connettersi, collegamenti ai social media e alle specifiche del protocollo di comunicazione.
+ **[Connect il tuo primo dispositivo a AWS IoT Core](#aws-iot-get-started)**.
+ **Sviluppa** le tue soluzioni IoT con [Connect a AWS IoT Core](connect-to-iot.md) ed esplorando [AWS IoT tutorial](iot-tutorials.md).
+ **Testa e convalida** i dispositivi IoT per una comunicazione sicura e affidabile utilizzando [Device Advisor](device-advisor.md).
+ **Gestisci** la tua soluzione utilizzando il gestore di servizi AWS IoT Core come [Indicizzazione del parco istanze](iot-indexing.md), [AWS IoT Lavori](iot-jobs.md), e [AWS IoT Device Defender](https://docs.aws.amazon.com/iot-device-defender/latest/devguide/what-is-device-defender.html).
+ **Analizza** i dati dai tuoi dispositivi utilizzando [AWS IoT servizi dati](aws-iot-how-it-works.md#aws-iot-components-data).

## Connect il tuo primo dispositivo a AWS IoT Core
<a name="aws-iot-get-started"></a>

AWS IoT Core i servizi connettono i dispositivi IoT a AWS IoT servizi e altri AWS servizi. AWS IoT Core include il device gateway e il message broker, che connettono ed elaborano i messaggi tra i dispositivi IoT e il cloud.

Ecco come puoi iniziare con AWS IoT Core e AWS IoT.

![\[AWS IoT Core guida introduttiva alla mappa del tour.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/iot-gs-tour-map.png)


Questa sezione presenta una panoramica dei AWS IoT Core suoi servizi principali e fornisce diversi esempi di come connettere un dispositivo AWS IoT Core e passare messaggi tra di essi. Lo scambio di messaggi tra dispositivi e cloud è fondamentale per ogni soluzione IoT ed è il modo in cui i dispositivi possono interagire con altri AWS servizi.
+ 

**[Configurare Account AWS](setting-up.md)**  
Prima di poter utilizzare AWS IoT i servizi, è necessario configurare un Account AWS. Se hai già un utente IAM Account AWS e un utente IAM, puoi utilizzarli e saltare questo passaggio.
+ 

**[Prova il tutorial sulla connessione rapida](iot-quick-start.md)**  
Questo tutorial è ideale se vuoi iniziare rapidamente AWS IoT e vedere come funziona in uno scenario limitato. In questo tutorial, avrai bisogno di un dispositivo e installerai del AWS IoT software su di esso. Se non disponi di un dispositivo IoT, puoi utilizzare un personal computer Windows, Linux o macOS come dispositivo per questo tutorial. Se vuoi provare AWS IoT, ma non hai un dispositivo, prova l'opzione successiva.
+ 

**[Prova il tutorial interattivo](interactive-demo.md)**  
Questa demo è ideale se vuoi vedere cosa può fare una AWS IoT soluzione di base senza connettere un dispositivo o scaricare alcun software. Il tutorial interattivo presenta una soluzione simulata basata su AWS IoT Core servizi che illustra come interagiscono.
+ 

**[Esplora i AWS IoT Core servizi con un tutorial pratico](iot-gs-first-thing.md)**  
Questo tutorial è ideale per gli sviluppatori che vogliono iniziare e continuare a esplorare altre AWS IoT Core funzionalità come il motore delle regole e le ombre. AWS IoT Questo tutorial segue un processo simile al tutorial di connessione rapida, ma fornisce ulteriori dettagli su ogni passaggio per consentire una transizione più fluida ai tutorial più avanzati.
+ 

**[Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md)**  
Scopri come utilizzare il client di test MQTT per guardare il tuo primo dispositivo pubblicare messaggi MQTT in AWS IoT. Il client di test MQTT è uno strumento utile per monitorare e risolvere i problemi relativi alle connessioni dei dispositivi.

**Nota**  
Se desideri provare più di uno di questi tutorial introduttivi o ripetere lo stesso tutorial, devi eliminare l'oggetto creato da un tutorial precedente prima di avviarne un altro. Se non elimini l'oggetto da un tutorial precedente, sarà necessario utilizzare un nome diverso per i tutorial successivi. Questo perché il nome dell'oggetto deve essere univoco nel tuo account e nella regione Regione AWS.

Per ulteriori informazioni su AWS IoT Core, consulta [What](what-is-aws-iot.md) Is? AWS IoT Core

# Configurare Account AWS
<a name="setting-up"></a>

Prima di AWS IoT Core utilizzarlo per la prima volta, completa le seguenti attività:

**Topics**
+ [Registrati per un Account AWS](#sign-up-for-aws)
+ [Crea un utente con accesso amministrativo](#create-an-admin)
+ [Apri la console AWS IoT](#iot-console-signin)

## Registrati per un Account AWS
<a name="sign-up-for-aws"></a>

Se non ne hai uno Account AWS, completa i seguenti passaggi per crearne uno.

**Per iscriverti a un Account AWS**

1. Apri la [https://portal.aws.amazon.com/billing/registrazione.](https://portal.aws.amazon.com/billing/signup)

1. Segui le istruzioni online.

   Nel corso della procedura di registrazione riceverai una telefonata o un messaggio di testo e ti verrà chiesto di inserire un codice di verifica attraverso la tastiera del telefono.

   Quando ti iscrivi a un Account AWS, *Utente root dell'account AWS*viene creato un. L’utente root dispone dell’accesso a tutte le risorse e tutti i Servizi AWS nell’account. Come best practice di sicurezza, assegna l’accesso amministrativo a un utente e utilizza solo l’utente root per eseguire [attività che richiedono l’accesso di un utente root](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_root-user.html#root-user-tasks).

AWS ti invia un'email di conferma dopo il completamento della procedura di registrazione. In qualsiasi momento, puoi visualizzare l'attività corrente del tuo account e gestirlo accedendo a [https://aws.amazon.com/](https://aws.amazon.com/)e scegliendo **Il mio account**.

## Crea un utente con accesso amministrativo
<a name="create-an-admin"></a>

Dopo esserti registrato Account AWS, proteggi Utente root dell'account AWS AWS IAM Identity Center, abilita e crea un utente amministrativo in modo da non utilizzare l'utente root per le attività quotidiane.

**Proteggi i tuoi Utente root dell'account AWS**

1.  Accedi [Console di gestione AWS](https://console.aws.amazon.com/)come proprietario dell'account scegliendo **Utente root** e inserendo il tuo indirizzo Account AWS email. Nella pagina successiva, inserisci la password.

   Per informazioni sull’accesso utilizzando un utente root, consulta la pagina [Accedere come utente root](https://docs.aws.amazon.com/signin/latest/userguide/console-sign-in-tutorials.html#introduction-to-root-user-sign-in-tutorial) nella *Guida per l’utente di Accedi ad AWS *.

1. Abilita l’autenticazione a più fattori (MFA) per l’utente root.

   Per istruzioni, consulta [Abilitare un dispositivo MFA virtuale per l'utente Account AWS root (console)](https://docs.aws.amazon.com/IAM/latest/UserGuide/enable-virt-mfa-for-root.html) nella Guida per l'*utente IAM*.

**Crea un utente con accesso amministrativo**

1. Abilita il Centro identità IAM.

   Per istruzioni, consulta [Abilitazione del AWS IAM Identity Center](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-set-up-for-idc.html) nella *Guida per l’utente di AWS IAM Identity Center *.

1. Nel Centro identità IAM, assegna l’accesso amministrativo a un utente.

   Per un tutorial sull'utilizzo di IAM Identity Center directory come fonte di identità, consulta [Configurare l'accesso utente con l'impostazione predefinita IAM Identity Center directory](https://docs.aws.amazon.com//singlesignon/latest/userguide/quick-start-default-idc.html) nella *Guida per l'AWS IAM Identity Center utente*.

**Accesso come utente amministratore**
+ Per accedere come utente del Centro identità IAM, utilizza l’URL di accesso che è stato inviato al tuo indirizzo e-mail quando hai creato l’utente del Centro identità IAM.

  Per informazioni sull'accesso utilizzando un utente IAM Identity Center, consulta [AWS Accedere al portale di accesso](https://docs.aws.amazon.com/signin/latest/userguide/iam-id-center-sign-in-tutorial.html) nella *Guida per l'Accedi ad AWS utente*.

**Assegnazione dell’accesso ad altri utenti**

1. Nel Centro identità IAM, crea un set di autorizzazioni conforme alla best practice per l’applicazione di autorizzazioni con il privilegio minimo.

   Segui le istruzioni riportate nella pagina [Creazione di un set di autorizzazioni](https://docs.aws.amazon.com//singlesignon/latest/userguide/get-started-create-a-permission-set.html) nella *Guida per l’utente di AWS IAM Identity Center *.

1. Assegna al gruppo prima gli utenti e poi l’accesso con autenticazione unica (Single Sign-On).

   Per istruzioni, consulta [Aggiungere gruppi](https://docs.aws.amazon.com//singlesignon/latest/userguide/addgroups.html) nella *Guida per l’utente di AWS IAM Identity Center *.
+ [Apri la console AWS IoT](#iot-console-signin)

Se hai già un utente Account AWS e un utente per te, puoi usarli e passare direttamente a[Apri la console AWS IoT](#iot-console-signin).

## Apri la console AWS IoT
<a name="iot-console-signin"></a>

La maggior parte degli argomenti relativi alla console di questa sezione iniziano dalla AWS IoT console. Se non hai già effettuato l'accesso al tuo Account AWS, accedi, quindi apri la [AWS IoT console](https://console.aws.amazon.com//iot/home) e passa alla sezione successiva per continuare a usare. AWS IoT

# Tutorial interattivo
<a name="interactive-demo"></a>

Il tutorial interattivo mostra i componenti di una semplice soluzione IoT basata su AWS IoT. Il tutorial mostra come i dispositivi IoT interagiscono con AWS IoT Core i servizi. Questo argomento fornisce un'anteprima del tutorial AWS IoT Core interattivo.

**Nota**  
Le immagini nella console includono animazioni che non appaiono nelle immagini di questo tutorial.

Per eseguire la demo, devi per prima cosa [Configurare Account AWS](setting-up.md). Il tutorial, tuttavia, non richiede AWS IoT risorse, software aggiuntivo o codifica.

La demo impiega circa 5-10 minuti. Concediti 10 minuti in modo da avere più tempo per comprendere ciascuno dei passaggi.

**Per eseguire il tutorial AWS IoT Core interattivo**

1. Apri la [AWS IoT home page](https://console.aws.amazon.com//iot/home#/home) nella AWS IoT console.

   Nella **home page di AWS IoT **, nel riquadro della finestra **Risorse di apprendimento**, scegli **Avvia tutorial**.  
![\[Questa è la home page della AWS IoT console.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-home-demo.png)

1. Nella pagina **Tutorial della console AWS IoT **, consulta le sezioni del tutorial e scegli la **sezione Avvia** quando sei pronto per continuare.

**Le seguenti sezioni descrivono come il **AWS IoT Console Tutorial** presenta queste AWS IoT Core funzionalità:**
+ [Collegamento di dispositivi IoT](#interactive-demo-part1)
+ [Salvataggio dello stato del dispositivo non in linea](#interactive-demo-part2)
+ [Instradamento dei dati del dispositivo ai servizi](#interactive-demo-part3)

## Collegamento di dispositivi IoT
<a name="interactive-demo-part1"></a>

Scopri come comunicano i dispositivi IoT con AWS IoT Core.

![\[Questo è il primo passo del tutorial AWS IoT interattivo.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-demo-step-1.png)


L'animazione in questa fase mostra come due dispositivi, il dispositivo di controllo a sinistra e una lampada intelligente nella casa a destra, si connettono e comunicano con AWS IoT Core nel cloud. L'animazione mostra i dispositivi che comunicano AWS IoT Core e reagiscono ai messaggi che ricevono.

Per ulteriori informazioni sulla connessione dei dispositivi a AWS IoT Core, vedere. [Connect a AWS IoT Core](connect-to-iot.md)

## Salvataggio dello stato del dispositivo non in linea
<a name="interactive-demo-part2"></a>

Scopri come AWS IoT Core salvare lo stato del dispositivo per quando un dispositivo o un'app sono offline.

![\[Questa è la seconda fase del tutorial AWS IoT interattivo.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-demo-step-2.png)


L'animazione di questo passaggio mostra come il servizio Device Shadow AWS IoT Core salva le informazioni sullo stato del dispositivo per il dispositivo di controllo e la lampada intelligente. Mentre la lampada intelligente è disconnessa, Device Shadow salva i comandi del dispositivo di controllo.

Quando la lampada intelligente si riconnette a AWS IoT Core, recupera quei comandi. Mentre la lampada intelligente è disconnessa, Device Shadow salva le informazioni di stato della lampada intelligente. Quando il dispositivo di controllo si riconnette, recupera lo stato corrente della lampada intelligente per aggiornare il display.

Per ulteriori informazioni su Device Shadows, consulta [AWS IoT Servizio Device Shadow](iot-device-shadows.md).

## Instradamento dei dati del dispositivo ai servizi
<a name="interactive-demo-part3"></a>

Scopri come AWS IoT Core invia lo stato del dispositivo ad altri AWS servizi.

![\[Questa è la terza fase del tutorial AWS IoT interattivo.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-demo-step-3.png)


L'animazione di questo passaggio mostra come AWS IoT Core invia i dati dai dispositivi ad altri AWS servizi utilizzando AWS IoT le regole. AWS IoT le regole sottoscrivono messaggi specifici provenienti dai dispositivi, interpretano i dati contenuti in tali messaggi e indirizzano i dati interpretati ad altri servizi. In questo esempio, una AWS IoT regola interpreta i dati da un sensore di movimento e invia comandi a un Device Shadow, che poi li invia alla lampadina intelligente. Come nell'esempio precedente, Device Shadow archivia le informazioni sullo stato del dispositivo per il dispositivo di controllo.

Per ulteriori informazioni sulle AWS IoT regole, vedere[Regole per AWS IoT](iot-rules.md).

# Prova il tutorial sulla connessione AWS IoT Core rapida
<a name="iot-quick-start"></a>

In questo tutorial creerai come prima cosa il tuo oggetto, poi gli collegherai un dispositivo e lo guarderai inviare messaggi MQTT.

Puoi aspettarti di impiegare 15-20 minuti per questo tutorial.

Questo tutorial è ideale per chi vuole iniziare rapidamente AWS IoT a vedere come funziona in uno scenario limitato. Se stai cercando un esempio che ti consenta di iniziare, in modo da poter esplorare più funzionalità e servizi, prova [AWS IoT Core Scopritelo in tutorial pratici](iot-gs-first-thing.md).

In questo tutorial, scaricherai ed eseguirai il software su un dispositivo che si connette a una *risorsa oggetto* AWS IoT Core come parte di una soluzione IoT molto piccola. Il dispositivo può essere un dispositivo IoT, come un Raspberry Pi, oppure può anche essere un computer che esegue Linux, OS e OSX o Windows. Se stai cercando di connettere un dispositivo WAN a lungo raggio (LoRaWAN) AWS IoT, consulta il tutorial [>Connessione di dispositivi e gateway a AWS IoT Core](https://docs.aws.amazon.com/iot-wireless/latest/developerguide/lorawan-getting-started.html) una rete WAN. LoRa

Se il dispositivo supporta un browser in grado di eseguire la [Console AWS IoT](https://console.aws.amazon.com//iot/home), ti consigliamo di completare questo tutorial su quel dispositivo.

**Nota**  
Se il dispositivo non dispone di un browser compatibile, segui questo tutorial su un computer. Quando la procedura richiede di scaricare il file, scaricalo sul computer e quindi trasferisci il file scaricato sul dispositivo utilizzando Secure Copy (SCP) o un processo simile.

Il tutorial richiede che il dispositivo IoT comunichi con la porta 8443 sull'endpoint dati dispositivo dell' Account AWS. Per verificare se è in grado di accedere a quella porta, utilizza le procedure in [Verifica la connettività con l'endpoint di dati del tuo dispositivo](iot-quick-start-test-connection.md).

## Passaggio 1. Inizia il tutorial
<a name="iot-quick-start-connect"></a>

Se possibile, completa questa procedura sul dispositivo; in caso contrario, dovrai trasferire un file sul dispositivo più avanti in questa procedura.

Per iniziare il tutorial, accedi alla [console AWS IoT](https://console.aws.amazon.com//iot/home). Nella home page della AWS IoT console, a sinistra, scegli **Connetti**, quindi scegli **Connetti un dispositivo**.

![\[La home page di questa AWS IoT console mostra come connettere un dispositivo.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-quick-connect.PNG)


## Passaggio 2. Crea un oggetto
<a name="iot-quick-start-configure"></a>

1. Nella sezione **Prepare your device** (Preparazione del dispositivo), seguire le istruzioni a video per preparare il dispositivo per la connessione a AWS IoT.  
![\[Come preparare il dispositivo nella AWS IoT console.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-prepare-device.png)

1. Nella sezione **Register and secure your device** (Registra e proteggi il dispositivo), scegliere **Create a new thing** (Crea un nuovo oggetto) o **Choose an existing thing** (Scegli un oggetto esistente). Nel campo **Thing name** (Nome oggetto), immettere il nome dell'oggetto. Il nome dell'oggetto usato in questo esempio è **TutorialTestThing**
**Importante**  
Controlla il nome dell'oggetto prima di continuare.  
Un nome di oggetto non può essere modificato dopo che l'oggetto è stato creato. Se desideri cambiare il nome di un oggetto, devi creare un nuovo oggetto con il nome corretto dell'oggetto e quindi eliminare quello con il nome non corretto.

   Nella sezione **Additional configurations** (Configurazioni aggiuntive), personalizzare ulteriormente la risorsa oggetto utilizzando le configurazioni opzionali elencate.

   Dopo aver dato un nome all'oggetto e aver selezionato eventuali configurazioni aggiuntive, scegliere **Next** (Avanti).  
![\[Usa la AWS IoT console per registrare e proteggere il tuo dispositivo.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-register-and-secure-your-device.png)

1. Nella sezione **Scegli piattaforma e SDK**, scegli la piattaforma e la lingua dell'SDK del AWS IoT dispositivo che desideri utilizzare. Questo esempio utilizza la Linux/OSX piattaforma e l'SDK Python. Assicurati che python3 e pip3 siano installati sul dispositivo di destinazione prima di passare alla fase successiva.
**Nota**  
Assicurati di controllare l'elenco dei prerequisiti software richiesti dall'SDK scelto, nella parte inferiore della pagina della console.  
Prima di continuare con la fase successiva, devi disporre del software necessario installato nel computer di destinazione.

   Dopo aver scelto la lingua SDK della piattaforma e del dispositivo, scegli **Next (Successivo)**.  
![\[Usa la AWS IoT console per scegliere la piattaforma e l'SDK.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-choose-platform-and-SDK.png)

## Fase 3. Scarica file sul tuo dispositivo
<a name="iot-quick-start-name"></a>

Questa pagina viene visualizzata dopo AWS IoT aver creato il kit di connessione, che include i seguenti file e risorse richiesti dal dispositivo:
+ I file di certificato dell'oggetto utilizzati per autenticare il dispositivo
+ Una risorsa policy per autorizzare il tuo oggetto a interagire con AWS IoT
+ Lo script per scaricare AWS Device SDK ed eseguire il programma di esempio sul dispositivo

1. Quando sei pronto a continuare, scegli l'opzione **Download connection kit for (Scarica il kit di connessione per)** per scaricare il kit di connessione per la piattaforma scelta in precedenza.  
![\[Questa è la pagina della AWS IoT console per scaricare il file del certificato.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_1.png)

1. Se esegui questa procedura sul dispositivo, salva il file del kit di connessione in una directory da cui è possibile eseguire i comandi della riga di comando.

   Se non esegui questa procedura sul dispositivo, salva il file del kit di connessione in una directory locale e quindi trasferisci il file sul dispositivo.

1. Nella sezione **Unzip connection kit on your device** (Decomprimi il kit di connessione sul dispositivo), immettere **unzip connect\$1device\$1package.zip** nella directory in cui si trovano i file del kit di connessione.

   Se utilizzi una finestra di PowerShell comando di Windows e il **unzip** comando non funziona, sostituiscilo **unzip** con **expand-archive** e riprova a utilizzare la riga di comando.

1. Dopo aver installato il file del kit di connessione sul dispositivo, continuare il tutorial scegliendo **Next** (Avanti).  
![\[AWS IoT pagina di download del file del certificato della console dopo il download del kit di connessione.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-download-connection-kit_2.png)

## Passaggio 4. Esegui l'esempio
<a name="iot-quick-start-install-run"></a>

Dovrai eseguire questa procedura in un terminale o in una finestra di comando del dispositivo seguendo le indicazioni visualizzate nella console. I comandi visualizzati nella console sono quelli del sistema operativo scelto in [Passaggio 2. Crea un oggetto](#iot-quick-start-configure). Quelli mostrati qui si riferiscono ai sistemi Linux/OSX operativi.

1. In una finestra di terminale o di comando del dispositivo, nella directory contenente il file del kit di connessione, esegui i passaggi mostrati nella AWS IoT console.  
![\[AWS IoT pagina di avvio rapido della console, installazione ed esecuzione.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-run-connection-kit.png)

1. Dopo avere inserito il comando di **Step 2** (Fase 2) nella console, nella finestra di comando o nel terminale del dispositivo si dovrebbe vedere un output simile al seguente. Questo output proviene dai messaggi che il programma sta inviando e quindi ricevendo di nuovo da AWS IoT Core.  
![\[AWS IoT output del programma di esempio di avvio rapido della console.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-connect-console-output-python_updated.png)

   Mentre il programma di esempio è in esecuzione, apparirà anche il messaggio di prova `Hello World!`. Il messaggio di prova viene visualizzato nel terminale o nella finestra di comando del dispositivo.
**Nota**  
Per ulteriori informazioni sulla sottoscrizione e la pubblicazione degli argomenti, consulta il codice di esempio dell'SDK scelto.

1. Per eseguire nuovamente il programma di esempio, ripetere i comandi di **Step 2** (Fase 2) di questa procedura nella console.

1. (Facoltativo) Se desideri visualizzare i messaggi del tuo client IoT nella [AWS IoT console](https://console.aws.amazon.com//iot/home), apri il [client di test MQTT](https://console.aws.amazon.com//iot/home#/test) nella pagina **Test** della AWS IoT console. In **MQTT test client** (Client MQTT di test), in **Topic filter** (Filtro argomenti), inserisci **sdk/test/*python*** per sottoscrivere i messaggi dal tuo dispositivo. I filtri degli argomenti fanno distinzione tra maiuscole e minuscole e dipendono dal linguaggio di programmazione dell'SDK scelto in **Step 1** (Fase 1). Per ulteriori informazioni sulla sottoscrizione e la pubblicazione degli argomenti, consulta il codice di esempio dell'SDK scelto.

1. Dopo aver sottoscritto l'argomento del test, esegui **./start.sh** sul dispositivo. Per ulteriori informazioni, consulta [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md).

   Dopo aver eseguito **./start.sh**, nel client MQTT verranno visualizzati messaggi simili ai seguenti:

   ```
   {
     "message": "Hello World!" [1]
   }
   ```

   Il numero `sequence` racchiuso in `[]` si incrementa di uno ogni volta che un nuovo messaggio `Hello World!` viene ricevuto e si interrompe quando il programma termina.

1. Per completare il tutorial e visualizzare un riepilogo, nella AWS IoT console, scegliete **Continua**.   
![\[AWS IoT pagina di completamento con avvio rapido della console.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-connect-complete_updated1.png)

1. Ora verrà visualizzato un riepilogo del tutorial di connessione AWS IoT rapida.  
![\[AWS IoT pagina di riepilogo di avvio rapido della console.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/aws-iot-learn-device-is-connected.png)

## Fase 5. Esplora ulteriormente
<a name="iot-quick-start-test"></a>

Ecco alcune idee da AWS IoT approfondire dopo aver completato la guida rapida.
+ 

**[Visualizza i messaggi MQTT nel client di test MQTT](https://console.aws.amazon.com/iot/home#/test)**  
Nella [console AWS IoT](https://console.aws.amazon.com//iot/home), apri [MQTT client](https://console.aws.amazon.com//iot/home#/test) (Client MQTT) sulla pagina **Test** della console AWS IoT . In **MQTT test client** (Client di test MQTT), esegui la sottoscrizione a **\$1** e quindi esegui il programma **./start.sh** sul dispositivo, come descritto nella fase precedente. Per ulteriori informazioni, consulta [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md).
+ 

**Esecuzione di test sui dispositivi con [Device Advisor](https://docs.aws.amazon.com//iot/latest/developerguide/device-advisor.html)**  
Usa Device Advisor per verificare se i tuoi dispositivi possono connettersi e interagire in modo sicuro e affidabile con,. AWS IoT
+ 

**[Tutorial interattivo](interactive-demo.md)**  
Per avviare il tutorial interattivo, dalla pagina **Impara** della AWS IoT console, nel riquadro **Scopri come AWS IoT funziona**, scegli **Avvia il** tutorial.
+ 

**[Preparati a esplorare altri tutorial](iot-gs-first-thing.md)**  
Questo avvio rapido ti offre solo un esempio di AWS IoT. Se desideri AWS IoT approfondire e conoscere le funzionalità che la rendono una potente piattaforma di soluzioni IoT, inizia a preparare la tua piattaforma di sviluppo entro[AWS IoT Core Scopritelo in tutorial pratici](iot-gs-first-thing.md).

# Verifica la connettività con l'endpoint di dati del tuo dispositivo
<a name="iot-quick-start-test-connection"></a>

In questo argomento viene descritto come testare la connessione di un dispositivo con l'*endpoint dei dati del dispositivo* del tuo account, ossia l'endpoint che i tuoi dispositivi IoT utilizzano per connettersi a AWS IoT.

Esegui queste procedure sul dispositivo che desideri testare o utilizza una sessione di terminale SSH collegata al dispositivo che intendi testare.

**Topics**
+ [Individuazione dell'endpoint dati del dispositivo](#iot-quick-start-test-connection-endpoint)
+ [Test rapido della connessione](#iot-quick-start-test-connection-ping)
+ [Test della connessione all'endpoint e alla porta dati del dispositivo con l'applicazione](#iot-quick-start-test-connection-app)
+ [Test della connessione all'endpoint e alla porta dati del dispositivo](#iot-quick-start-test-connection-test)

## Individuazione dell'endpoint dati del dispositivo
<a name="iot-quick-start-test-connection-endpoint"></a>

Questa procedura spiega come trovare l'endpoint dei dati del dispositivo nella [AWS IoT console](https://console.aws.amazon.com//iot/home) per testare la connessione al dispositivo IoT.

**Individuazione dell'endpoint dati del dispositivo**

1. Nella [AWS IoT console](https://console.aws.amazon.com//iot/home), nella sezione **Connect**, vai a **Configurazioni di dominio**.

1. **Nella pagina **Configurazioni del dominio**, vai al contenitore delle **configurazioni del dominio** e copia il nome del dominio.** Il valore del tuo endpoint è unico per te Account AWS ed è simile a questo esempio:. `a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`

1. 

   Memorizza l'endpoint dati del dispositivo per poterlo utilizzare nelle procedure seguenti.

## Test rapido della connessione
<a name="iot-quick-start-test-connection-ping"></a>

Questa procedura verifica la connettività generale con l'endpoint dati del dispositivo, ma non verifica la porta specifica che verrà utilizzata dai dispositivi. Questo test utilizza un programma comune e di solito è sufficiente per sapere se i dispositivi sono in grado di connettersi a AWS IoT.

Se desideri testare la connettività con la porta specifica utilizzata dai dispositivi, salta questa procedura e passa a [Test della connessione all'endpoint e alla porta dati del dispositivo con l'applicazione](#iot-quick-start-test-connection-app).

**Test rapido dell'endpoint dati del dispositivo**

1. In un terminale o nella finestra della riga di comando del dispositivo, sostituisci l'endpoint dati del dispositivo di esempio (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) con l'endpoint dati del dispositivo del tuo account, quindi inserisci questo comando.

------
#### [ Linux ]

   ```
   ping -c 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------
#### [ Windows ]

   ```
   ping -n 5 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

------

1. Se `ping` mostra un output simile al seguente, si è connesso correttamente all'endpoint dati del dispositivo. Sebbene non abbia comunicato AWS IoT direttamente con, ha trovato il server ed è probabile che AWS IoT sia disponibile tramite questo endpoint.

   ```
   PING a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xx.xxx.xxx) 56(84) bytes of data.
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=1 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=2 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=3 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=4 ttl=231 time=127 ms
   64 bytes from ec2-EXAMPLE-218.eu-west-1.compute.amazonaws.com (xx.xx.xxx.xxx): icmp_seq=5 ttl=231 time=127 ms
   ```

   Se il risultato ti soddisfa, puoi interrompere il test qui.

   Se desideri testare la connettività con la porta specifica utilizzata da AWS IoT, vai a [Test della connessione all'endpoint e alla porta dati del dispositivo con l'applicazione](#iot-quick-start-test-connection-app).

1. Se `ping` non restituisce un output positivo, controlla il valore dell'endpoint per assicurarti che si tratti di quello corretto e verifica la connessione del dispositivo a Internet.

## Test della connessione all'endpoint e alla porta dati del dispositivo con l'applicazione
<a name="iot-quick-start-test-connection-app"></a>

È possibile eseguire un test di connettività più approfondito utilizzando `nmap`. Questa procedura verifica se `nmap` è installato sul dispositivo.

**Verificare la presenza di `nmap` sul dispositivo**

1. In un terminale o nella finestra della riga di comando sul dispositivo che desideri testare, inserisci questo comando per vedere se `nmap` è installato.

   ```
   nmap --version
   ```

1. Se viene visualizzato un output simile al seguente, `nmap` è installato e puoi continuare con [Test della connessione all'endpoint e alla porta dati del dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

1. Se non visualizzi una risposta simile a quella mostrata nel passaggio precedente, è necessario installare `nmap` sul dispositivo. Scegli la procedura in base al sistema operativo del dispositivo.

------
#### [ Linux ]

Questa procedura richiede l'autorizzazione all'installazione del software sul computer.

**Installazione di nmap su un computer Linux**

1. In un terminale o nella finestra della riga di comando del dispositivo, inserisci il comando corrispondente alla versione di Linux in esecuzione.

   1. Debian o Ubuntu:

      ```
      sudo apt install nmap
      ```

   1. CentOS o RHEL:

      ```
      sudo yum install nmap
      ```

1. Testa l'installazione con questo comando:

   ```
   nmap --version
   ```

1. Se viene visualizzato un output simile al seguente, `nmap` è installato e puoi continuare con [Test della connessione all'endpoint e alla porta dati del dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 6.40 ( http://nmap.org )
   Platform: x86_64-koji-linux-gnu
   Compiled with: nmap-liblua-5.2.2 openssl-1.0.2k libpcre-8.32 libpcap-1.5.3 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: epoll poll select
   ```

------
#### [ macOS ]

Questa procedura richiede l'autorizzazione all'installazione del software sul computer.

**Installazione di nmap su un computer macOS**

1. In un browser, apri [https://nmap.org/download\$1macosx](https://nmap.org/download#macosx) ed esegui il download dell'**ultima versione stabile** del programma di installazione.

   Quando richiesto, seleziona **Apri** con. DiskImageInstaller

1. Nella finestra di installazione, sposta il pacchetto nella cartella **Applicazioni**.

1. Nel **Finder**, individua il pacchetto `nmap-xxxx-mpkg` nella cartella **Applications** (Applicazioni). Esegui il comando **Ctrl-click** sul pacchetto e seleziona **Open** (Apri) per aprire il pacchetto.

1. Esamina la finestra di dialogo sulla sicurezza. Se sei pronto per l'installazione di **nmap**, scegli **Apri** per installare **nmap**.

1. Nel **Terminal**, testa l'installazione con questo comando.

   ```
   nmap --version
   ```

1. Se viene visualizzato un output simile al seguente, `nmap` è installato e puoi continuare con [Test della connessione all'endpoint e alla porta dati del dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: x86_64-apple-darwin17.7.0
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 libz-1.2.11 nmap-libpcre-7.6 nmap-libpcap-1.9.1 nmap-libdnet-1.12 ipv6 Compiled without:
   Available nsock engines: kqueue poll select
   ```

------
#### [ Windows ]

Questa procedura richiede l'autorizzazione all'installazione del software sul computer.

**Installazione di nmap su un computer Windows**

1. In un browser, apri [https://nmap.org/download\$1windows](https://nmap.org/download#windows) ed esegui il download dell'**ultima versione stabile** del programma di installazione.

   Se richiesto, scegli **Salva file**. Dopo aver scaricato il file, aprilo dalla cartella dei download.

1.  Al termine del download del file di installazione, apri il file **nmap-xxxx-setup.exe** che hai scaricato per installare l'applicazione. 

1.  Accetta le impostazioni predefinite durante l'installazione del programma.

   Per questo test non è necessaria l'applicazione Npcap. Se non desideri installarla, puoi deselezionare tale opzione.

1. Nel **Command**, testa l'installazione con questo comando.

   ```
   nmap --version
   ```

1. Se viene visualizzato un output simile al seguente, `nmap` è installato e puoi continuare con [Test della connessione all'endpoint e alla porta dati del dispositivo](#iot-quick-start-test-connection-test).

   ```
   Nmap version 7.92 ( https://nmap.org )
   Platform: i686-pc-windows-windows
   Compiled with: nmap-liblua-5.3.5 openssl-1.1.1k nmap-libssh2-1.9.0 nmap-libz-1.2.11 nmap-libpcre-7.6 Npcap-1.50 nmap-libdnet-1.12 ipv6
   Compiled without:
   Available nsock engines: iocp poll select
   ```

------

## Test della connessione all'endpoint e alla porta dati del dispositivo
<a name="iot-quick-start-test-connection-test"></a>

Questa procedura verifica la connessione del dispositivo IoT all'endpoint dati del dispositivo utilizzando la porta selezionata.

**Test dell'endpoint e della porta dati del dispositivo**

1. In un terminale o nella finestra della riga di comando del dispositivo, sostituisci l'endpoint dati del dispositivo di esempio (`a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com`) con l'endpoint dati del dispositivo del tuo account, quindi inserisci questo comando.

   ```
   nmap -p 8443 a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com
   ```

1. Se `nmap` mostra un output simile al seguente, `nmap` si è connesso correttamente all'endpoint dati del dispositivo e alla porta selezionata.

   ```
   Starting Nmap 7.92 ( https://nmap.org ) at 2022-02-18 16:23 Pacific Standard Time
   Nmap scan report for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (xx.xxx.147.160)
   Host is up (0.036s latency).
   Other addresses for a3qEXAMPLEsffp-ats.iot.eu-west-1.amazonaws.com (not scanned): xx.xxx.134.144 xx.xxx.55.139 xx.xxx.110.235 xx.xxx.174.233 xx.xxx.74.65 xx.xxx.122.179 xx.xxx.127.126
   rDNS record for xx.xxx.147.160: ec2-EXAMPLE-160.eu-west-1.compute.amazonaws.com
   
   PORT     STATE SERVICE
   8443/tcp open  https-alt
   MAC Address: 00:11:22:33:44:55 (Cimsys)
   
   Nmap done: 1 IP address (1 host up) scanned in 0.91 seconds
   ```

1. Se `nmap` non restituisce un output positivo, controlla il valore dell'endpoint per assicurarti che sia l'endpoint corretto e verifica la connessione del dispositivo a Internet.

Puoi testare altre porte sull'endpoint dati del dispositivo, ad esempio la porta 443, la porta HTTPS principale, sostituendo la porta utilizzata nel passaggio 1, `8443`, con la porta che desideri testare.

# AWS IoT Core Scopritelo in tutorial pratici
<a name="iot-gs-first-thing"></a>

In questo tutorial, installerai il software e creerai le AWS IoT risorse necessarie per connettere un dispositivo AWS IoT Core in modo che possa inviare e ricevere messaggi MQTT con AWS IoT Core. Vedrete i messaggi nel client MQTT nella AWS IoT console.

Puoi aspettarti di impiegare 20-30 minuti per questo tutorial. Se utilizzi un dispositivo IoT o un Raspberry Pi, questa esercitazione potrebbe richiedere più tempo se, ad esempio, è necessario installare il sistema operativo e configurare il dispositivo.

![\[Guida introduttiva alla AWS IoT Core pagina.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/iot-getting-started.png)


Questo tutorial è ideale per gli sviluppatori che vogliono iniziare e continuare a esplorare funzionalità più avanzate, come il [motore delle regole](https://docs.aws.amazon.com//iot/latest/developerguide/iot-rules.html) e le [ombre](https://docs.aws.amazon.com//iot/latest/developerguide/iot-device-shadows.html). AWS IoT Core Questo tutorial ti prepara a continuare a conoscere AWS IoT Core e a capire come interagisce con altri AWS servizi, spiegando i passaggi in modo più dettagliato rispetto [al](iot-quick-start.md) tutorial di avvio rapido. Se cerchi solo un'esperienza *Hello World* veloce, prova il [Prova il tutorial sulla connessione AWS IoT Core rapida](iot-quick-start.md).

Dopo aver configurato la tua AWS IoT console Account AWS e la tua console, seguirai questi passaggi per vedere come connettere un dispositivo e come inviargli messaggi. AWS IoT Core

**Fasi successive**
+ [Scegli quale opzione di dispositivo è la migliore per te](#choosing-a-gs-system)
+ Se non intendi creare un dispositivo virtuale con Amazon EC2, scegli [Crea AWS IoT risorse](create-iot-resources.md)
+ [Configurazione del dispositivo](configure-device.md)
+ [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md)

Per ulteriori informazioni su AWS IoT Core, vedi [Cos'è AWS IoT Core](what-is-aws-iot.md)?

## Quale opzione di dispositivo è la migliore per te?
<a name="choosing-a-gs-system"></a>

Se non sai quale opzione scegliere, utilizza il seguente elenco dei vantaggi e degli svantaggi di ciascuna opzione per decidere quale è più adatta a te.


| Opzione | Questa potrebbe essere una buona opzione se: | Questa potrebbe non essere una buona opzione se: | 
| --- | --- | --- | 
| [Crea un dispositivo virtuale con Amazon EC2](creating-a-virtual-thing.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/iot-gs-first-thing.html)  | 
| [Usa il tuo PC o Mac Windows o Linux come dispositivo AWS IoT](using-laptop-as-device.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/iot-gs-first-thing.html)  | 
| [Connettere un Raspberry Pi o altro dispositivo](connecting-to-existing-device.md) |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/iot-gs-first-thing.html)  |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/iot-gs-first-thing.html)  | 

# Crea AWS IoT risorse
<a name="create-iot-resources"></a>

In questo tutorial, creerai le AWS IoT risorse necessarie a un dispositivo per connettersi AWS IoT Core e scambiare messaggi.

![\[Crea una pagina di AWS IoT risorse.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/iot-gs-create-resources.png)


1. Crea un documento di AWS IoT policy che autorizzi il tuo dispositivo a interagire con AWS IoT i servizi.

1. Crea un oggetto AWS IoT e il relativo certificato del dispositivo X.509, quindi allega il documento relativo alla policy. L'oggetto oggetto è la rappresentazione virtuale del dispositivo nel AWS IoT registro. Il certificato autentica il dispositivo e il documento di policy autorizza AWS IoT Core il dispositivo a interagire con. AWS IoT
**Nota**  
Se hai intenzione di [Crea un dispositivo virtuale con Amazon EC2](creating-a-virtual-thing.md), puoi saltare questa pagina e continuare con [Configurazione del dispositivo](configure-device.md). Creerai queste risorse una volta creata la tua cosa virtuale.

Questo tutorial utilizza la AWS IoT console per creare le risorse. AWS IoT Se il dispositivo supporta un browser Web, potrebbe essere più semplice eseguire questa procedura sul browser Web del dispositivo perché sarà possibile scaricare i file del certificato direttamente sul dispositivo. Se esegui questa procedura su un altro computer, sarà necessario copiare i file del certificato sul dispositivo prima che possano essere utilizzati dall'app di esempio.

## Crea una AWS IoT politica
<a name="create-iot-policy"></a>

I dispositivi utilizzano un certificato X.509 con cui effettuare l'autenticazione. AWS IoT Core Al certificato sono associate AWS IoT delle politiche. Queste policy determinano quali operazioni AWS IoT , ad esempio la sottoscrizione o la pubblicazione in argomenti MQTT, il dispositivo è autorizzato a eseguire. Il dispositivo presenta il certificato quando si connette e invia messaggi a AWS IoT Core.

Segui questi passaggi per creare una policy che consenta al dispositivo di eseguire le operazioni AWS IoT necessarie per eseguire il programma di esempio. È necessario creare la policy AWS IoT prima di poterla collegare al certificato del dispositivo che creerai in seguito.

**Per creare una AWS IoT politica**

1. Nella [console AWS IoT](https://console.aws.amazon.com//iot/home), nel menu di sinistra, scegli **Sicurezza**, quindi scegli **Policy**.

1. Nella pagina **You don't have a policy yet** (Al momento non sono disponibili policy), scegli **Create a policy** (Crea una policy).

   Se il tuo account dispone di policy esistenti, scegli **Crea policy**.

1. Nella pagina **Create a policy** (Crea una policy):

   1. Nella sezione **Policy properties** (Proprietà della policy), nel campo **Policy name** (Nome policy), inserisci un nome per la policy (ad esempio, **My\$1Iot\$1Policy**). Non utilizzare dati personali identificabili nei nomi delle policy.

   1. Nella sezione **Policy document** (Documento di policy), crea le istruzioni della policy che concedono o negano alle risorse l'accesso alle operazioni AWS IoT Core . Per creare un'istruzione della policy che consenta a tutti i client di eseguire ****iot:Connect****, procedi nel seguente modo:
      + Nel campo **Policy effect** (Effetto della policy), scegli **Allow** (Permetti). Questo consente a tutti i client che dispongono di questa policy collegata al certificato di eseguire le operazioni elencate nel campo **Policy action** (Operazione della policy).
      + Nel campo **Policy action** (Operazione della policy), scegli un'operazione della policy come ****iot:Connect****. Le operazioni della policy sono le operazioni per le quali il dispositivo ha bisogno dell'autorizzazione quando esegue il programma di esempio dall'SDK di dispositivo.
      + Nel campo **Policy resource** (Risorse della policy), inserisci un Amazon Resource Name (ARN) della risorsa o un **\$1**. Un **\$1** per selezionare qualsiasi client (dispositivo).

      Per creare le istruzioni della policy per ****iot:Receive****, ****iot:Publish**** e ****iot:Subscribe****,scegli **Add new statement** (Aggiungi una nuova istruzione) e ripeti i passaggi.  
![\[La pagina per creare una politica.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/gs-create-policy-new.png)
**Nota**  
In questo avvio rapido, il carattere jolly (\$1) viene utilizzato per semplicità. Per una maggiore sicurezza, devi limitare i client (dispositivi) che possono connettersi e pubblicare messaggi specificando un ARN client anziché il carattere jolly come risorsa. Il cliente ARNs segue questo formato:`arn:aws:iot:your-region:your-aws-account:client/my-client-id`.   
Tuttavia, prima di poter assegnare l'ARN a una policy devi creare la risorsa (ad esempio un dispositivo client o una shadow dell'oggetto). Per ulteriori informazioni, consulta la sezione [Risorse per l'operazione AWS IoT Core](https://docs.aws.amazon.com//iot/latest/developerguide/iot-action-resources.html).

1. Dopo avere inserito le informazioni per la policy, scegli **Create** (Crea).

Per ulteriori informazioni, consulta [Come AWS IoT funziona con IAM](security_iam_service-with-iam.md).

## Crea un oggetto
<a name="create-aws-thing"></a>

I dispositivi collegati a AWS IoT Core sono *rappresentati da oggetti* nel AWS IoT registro. Un *oggetto* rappresenta un dispositivo specifico o un'entità logica. Può trattarsi di un dispositivo fisico o un sensore (ad esempio una lampadina o un interruttore su un muro). Può anche essere un'entità logica, ad esempio un'istanza di un'applicazione o un'entità fisica a cui non si connette AWS IoT, ma è correlata ad altri dispositivi che lo fanno (ad esempio, un'auto dotata di sensori del motore o un pannello di controllo).

**Per creare qualcosa nella AWS IoT console**

1. Nella [console AWS IoT](https://console.aws.amazon.com/iot/home), nel menu di sinistra scegli **Tutti i dispositivi** e quindi **Oggetti**.

1. Sulla pagina **Things (Oggetti)**, scegli **Create things (Creazione di oggetti)**.

1. Nella pagina **Create things (Crea oggetti)**, scegli **Create a single thing (Crea un singolo oggetto)** e poi **Next (Successivo)**.

1. Sulla pagina **Specify thing properties (Specifica le proprietà degli oggetti)**, per **Thing name (Nome oggetto)** immetti un nome per l'oggetto, ad esempio **MyIotThing**.

   Scegli i nomi degli oggetti con attenzione, perché non possono essere modificati in seguito.

   Per cambiare il nome di un oggetto, devi creare un nuovo oggetto, dargli il nuovo nome e quindi eliminare il vecchio oggetto.
**Nota**  
Non utilizzare dati personali identificabili nei nomi degli oggetti. Il nome dell'oggetto può essere visualizzato nelle comunicazioni e nei report non crittografati.

1. Mantieni vuoti gli altri campi di questa pagina. Scegli **Next (Successivo)**.

1. Sulla pagina **Configure device certificate - *optional* (Configura il certificato del dispositivo - facoltativo)**, scegli **Auto-generate a new certificate (recommended) (Generazione automatica di un nuovo certificato) (scelta consigliata)**. Scegli **Next (Successivo)**.

1. Sulla pagina **Attach policies to certificate - *optional* (Collega policy al certificato - facoltativo)** seleziona la policy creata nella sezione precedente. In quella sezione, la policy è stata denominata **My\$1Iot\$1Policy**. Scegli **Create thing (Crea oggetto)**.

1. Sulla pagina **Download certificates and keys (Scarica certificati e chiavi)**:

   1. Scarica tutti i file di certificato e chiave e salvali per un secondo momento. Dovrai installare questi file sul tuo dispositivo.

      Quando salvi i file di certificato, assegna loro i nomi della tabella seguente. Questi sono i nomi di file utilizzati negli esempi successivi.  
**Nomi dei file dei certificati**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/create-iot-resources.html)

   1. Per scaricare il file della CA root per questi file, scegli il collegamento **Download** (Scarica) del file del certificato CA root corrispondente al tipo di endpoint di dati e suite di crittografia in uso. In questo tutorial, scegli **Download (Scarica)** a destra di **RSA 2048 bit key: Amazon Root CA 1 (Chiave RSA a 2048 bit: autorità di certificazione root Amazon 1)** e scarica il file **Chiave RSA a 2048 bit: autorità di certificazione root Amazon 1**.
**Importante**  
È necessario salvare i file del certificato prima di lasciare questa pagina. Dopo aver lasciato questa pagina nella console, non avrai più accesso ai file di certificato.  
Se ti sei è dimenticato di scaricare i file di certificato creati in questa fase, esci dalla schermata della console, accedi all'elenco di oggetti nella console, elimina l'oggetto creato e quindi riavvia la procedura dall'inizio.

   1.  Seleziona **Fatto**.

Dopo aver completato questa procedura, dovresti vedere il nuovo oggetto nell'elenco degli oggetti.

# Configurazione del dispositivo
<a name="configure-device"></a>

Questa sezione descrive come configurare il dispositivo per la connessione ad AWS IoT Core. Se vuoi iniziare AWS IoT Core ma non hai ancora un dispositivo, puoi creare un dispositivo virtuale usando Amazon EC2 oppure puoi usare il tuo PC Windows o Mac come dispositivo IoT.

Seleziona l'opzione di dispositivo migliore da provare AWS IoT Core. Certo, puoi provarli tutti, ma provane solo uno alla volta. Se non sei certo di quale opzione del dispositivo è più adatta a te, leggi come scegliere [quale opzione del dispositivo è la migliore](iot-gs-first-thing.md#choosing-a-gs-system) e poi torna a questa pagina.

**Opzioni del dispositivo**
+ [Crea un dispositivo virtuale con Amazon EC2](creating-a-virtual-thing.md)
+ [Usa il tuo PC o Mac Windows o Linux come dispositivo AWS IoT](using-laptop-as-device.md)
+ [Connettere un Raspberry Pi o altro dispositivo](connecting-to-existing-device.md)

# Crea un dispositivo virtuale con Amazon EC2
<a name="creating-a-virtual-thing"></a>

In questo tutorial, creerai un'istanza Amazon EC2 da utilizzare come dispositivo virtuale nel cloud.

Per completare questo tutorial, hai bisogno di un Account AWS. Se non disponi dell'account, effettua la procedura descritta in [Configurare Account AWS](setting-up.md), prima di continuare.

**Topics**
+ [Configurare un'istanza Amazon EC2](#set-up-ec2)
+ [Installa Git, Node.js e configura AWS CLI](#install-git-node)
+ [Crea AWS IoT risorse per il tuo dispositivo virtuale](#ec2-create-certificate)
+ [Installa l'SDK AWS IoT del dispositivo per JavaScript](#ec2-sdk)
+ [Esecuzione dell'applicazione di esempio](#ec2-run-app)
+ [Visualizza i messaggi dell'app di esempio nella AWS IoT console](#ec2-view-msg)

## Configurare un'istanza Amazon EC2
<a name="set-up-ec2"></a>

Nei passaggi seguenti viene illustrato come creare un'istanza Amazon EC2 che fungerà da dispositivo virtuale al posto di un dispositivo fisico.

Se è la prima volta che crei un'istanza Amazon EC2, potresti trovare più utili le istruzioni contenute nella [Guida introduttiva alle istanze Amazon EC2 Linux](https://docs.aws.amazon.com//AWSEC2/latest/UserGuide/EC2_GetStarted.html).

**Per avviare un'istanza**

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Dal menu della console a sinistra, espandi la sezione **Instances** (Istanze) e scegli **Istanze** (Istanze). Dalla dashboard **Istanze** (Istanze), scegli **Launch instances** (Avvia istanze) sulla destra per visualizzare un elenco di configurazioni di base. 

1. Nella sezione **Name and tags** (Nome e tag), inserisci un nome per l'istanza e, facoltativamente, aggiungi tag.

1. Nella sezione **Immagini di applicazioni e sistema operativo (Amazon Machine Image)**, scegli un modello AMI per l'istanza, ad esempio *Amazon Linux 2 AMI (HVM)*. Nota che queste AMI sono contrassegnate dalla dicitura "Free tier eligible" (Idonea per il piano gratuito).

1. Nella sezione **Instance type** (Tipo di istanza), è possibile selezionare la configurazione hardware per l'istanza. Selezionare il tipo `t2.micro`, ovvero l'opzione selezionata per impostazione di default. Questo tipo di istanza è idoneo per il piano gratuito.

1. Nella sezione **Key pair (login)** (Coppia di chiavi (accesso)), scegli il nome di una coppia di chiavi dall'elenco a discesa o scegli **Create a new key pair** (Crea una nuova coppia di chiavi) per crearne una nuova. Quando crei una nuova coppia di chiavi, assicurati di scaricare il file della chiave privata e di salvarlo in un luogo sicuro, perché questa è l'unica possibilità che hai per scaricarlo e salvarlo. Dovrai fornire il nome della coppia di chiavi quando avvii un'istanza e la chiave privata corrispondente ogni volta che ti connetti all'istanza.
**avvertimento**  
Non selezionare l'opzione **Proceed without a key pair ** (Procedi senza una coppia di chiavi). Se l'istanza viene avviata senza una coppia di chiavi, non sarà possibile connettersi a essa.

1. Nella sezione **Network settings** (Impostazioni di rete) e nella sezione **Configure storage** (Configura archiviazione), è possibile mantenere le impostazioni predefinite. Al termine, scegli **Launch Instances** (Avvia istanze).

1. Una pagina di conferma indicherà che l'istanza si sta avviando. Scegliere **View Instances (Visualizza istanze)** per chiudere la pagina di conferma e tornare alla console.

1. Nella schermata **Instances (Istanze)**, è possibile visualizzare lo stato dell'avvio. L'avvio di un'istanza richiede pochi minuti. Quando avvii un'istanza, il suo stato iniziale è `pending`. Dopo aver avviato l'istanza, il relativo stato cambia in `running` e l'istanza riceve un nome DNS pubblico. **(Se la colonna **Public DNS (IPv4)** è nascosta, scegli **Mostra/Nascondi colonne** (l'icona a forma di ingranaggio) nell'angolo in alto a destra della pagina, quindi seleziona Public DNS ().) IPv4**

1. Possono essere necessari alcuni minuti affinché l'istanza sia pronta e sia possibile connettervisi. Controllare che l'istanza abbia superato i controlli relativi allo stato. È possibile visualizzare queste informazioni nella colonna **Status Checks (Verifiche dello stato)**.

   Dopo che la nuova istanza ha superato i controlli di stato, continua con la procedura successiva e connettiti ad essa.

**Per collegarsi all'istanza**

È possibile connettersi a un'istanza tramiteil client basato su browser selezionando l'istanza dalla console Amazon EC2 e scegliendo di effettuare la connessione tramite Amazon EC2 Instance Connect. Instance Connect gestisce le autorizzazioni e fornisce una connessione valida.

1. Apri la console Amazon EC2 all'indirizzo [https://console.aws.amazon.com/ec2/](https://console.aws.amazon.com/ec2/).

1. Nel menu a sinistra, seleziona **Instances** (Istanze).

1. Selezionare l’istanza, quindi scegliere **Collegarsi**.

1. Scegli **Amazon EC2 Instance Connect**, **Connect** (Collega).

Ora dovresti disporre di una finestra **Amazon EC2 Instance Connect** che effettua l'accesso alla nuova istanza Amazon EC2.

## Installa Git, Node.js e configura AWS CLI
<a name="install-git-node"></a>

In questa sezione, installerai Git e Node.js, nell'istanza Linux.

**Per installare Git**

1. Nella finestra **Amazon EC2 Instance Connect**, esegui l'aggiornamento dell'istanza utilizzando il comando seguente.

   ```
   sudo yum update -y
   ```

1. Nella finestra **Amazon EC2 Instance Connect**, installa Git utilizzando il comando seguente.

   ```
   sudo yum install git -y
   ```

1. Per verificare se Git è stato installato e la versione corrente di Git, esegui il seguente comando:

   ```
   git --version
   ```

**Per installare Node.js**

1. Nella finestra **Amazon EC2 Instance Connect**, installa il gestore delle versioni del nodo (nvm) utilizzando il seguente comando.

   ```
   curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.34.0/install.sh | bash
   ```

   Verrà utilizzato nvm per installare Node.js perché è in grado di installare più versioni di Node.js e consente di passare dall'una all'altra. 

1. Nella finestra **Amazon EC2 Instance Connect**, attiva nvm utilizzando questo comando.

   ```
   . ~/.nvm/nvm.sh
   ```

1. Nella finestra **Amazon EC2 Instance Connect**, utilizza nvm per installare la versione più recente di Node.js utilizzando questo comando.

   ```
   nvm install 16
   ```
**Nota**  
Installa l'ultima versione LTS di Node.js.

   Installando Node.js, viene installato anche il gestore di pacchetti nodo (npm), quindi è possibile installare moduli aggiuntivi in base alle esigenze.

1. Nella finestra **Amazon EC2 Instance Connect** verifica che Node.js sia installato e funzioni correttamente utilizzando questo comando.

   ```
   node -e "console.log('Running Node.js ' + process.version)"
   ```

    Questo tutorial richiede Node 10.0 o versioni successive. Per ulteriori informazioni, consulta [Tutorial: Setting Up Node.js on an Amazon EC2 Instance](https://docs.aws.amazon.com/sdk-for-javascript/v2/developer-guide/setting-up-node-on-ec2-instance.html) (Tutorial: configurazione di Node.js su un'istanza Amazon EC2).

**Per configurare AWS CLI**

L'istanza Amazon EC2 viene precaricata con AWS CLI. Tuttavia, devi completare il tuo AWS CLI profilo. Per ulteriori informazioni su come configurare la tua CLI, consulta [Configurazione di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html).

1. L'esempio seguente illustra i valori di esempio. Sostituisci questi valori con i tuoi valori. Questi valori sono disponibili nella [console AWS nelle informazioni dell'account in **Security credentials (Credenziali di sicurezza)**](https://console.aws.amazon.com//iam/home#/security_credentials).

   Nella finestra **Amazon EC2 Instance Connect**, immetti il comando:

   ```
   aws configure
   ```

   Quindi inserisci i valori dal tuo account alle richieste visualizzate.

   ```
   AWS Access Key ID [None]: AKIAIOSFODNN7EXAMPLE
   AWS Secret Access Key [None]: wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY
   Default region name [None]: us-west-2
   Default output format [None]: json
   ```

1. Puoi testare la tua AWS CLI configurazione con questo comando:

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

   Se il tuo AWS CLI è configurato correttamente, il comando dovrebbe restituire un indirizzo di endpoint inviato dal tuo Account AWS.

## Crea AWS IoT risorse per il tuo dispositivo virtuale
<a name="ec2-create-certificate"></a>

Questa sezione descrive come utilizzare AWS CLI per creare l'oggetto e i relativi file di certificato direttamente sul dispositivo virtuale. Questo viene fatto direttamente sul dispositivo per evitare le potenziali complicazioni che potrebbero derivare dalla copia sul dispositivo da un altro computer. In questa sezione, creerai le seguenti risorse per il tuo dispositivo virtuale:
+ Un oggetto in cui rappresentare il dispositivo virtuale AWS IoT.
+ Un certificato per autenticare il dispositivo virtuale.
+ Un documento di policy per autorizzare il dispositivo virtuale a connettersi ad AWS IoT e pubblicare, ricevere e sottoscrivere messaggi.

**Per creare un AWS IoT oggetto nell'istanza Linux**

I dispositivi collegati a AWS IoT sono rappresentati da *oggetti Thing* nel AWS IoT registro. Un *oggetto* rappresenta un dispositivo specifico o un'entità logica. In questo caso, il tuo *oggetto* rappresenta il dispositivo virtuale, questa istanza Amazon EC2.

1. Nella finestra **Amazon EC2 Instance Connect**, esegui il comando seguente per creare il tuo oggetto.

   ```
   aws iot create-thing --thing-name "MyIotThing"
   ```

1. La risposta JSON deve essere simile alla seguente:

   ```
   {
       "thingArn": "arn:aws:iot:your-region:your-aws-account:thing/MyIotThing", 
       "thingName": "MyIotThing",
       "thingId": "6cf922a8-d8ea-4136-f3401EXAMPLE"
   }
   ```

**Per creare e allegare AWS IoT chiavi e certificati nella tua istanza Linux**

Il comando **[create-keys-and-certificate](https://awscli.amazonaws.com/v2/documentation/api/latest/reference/iot/create-keys-and-certificate.html)** crea certificati client firmati dall'autorità di certificazione root Amazon. Questo certificato viene utilizzato per autenticare l'identità del dispositivo virtuale.

1. Nell finestra **Amazon EC2 Instance Connect** crea una directory in cui archiviare i file del certificato e delle chiavi.

   ```
   mkdir ~/certs
   ```

1. Nella finestra **Amazon EC2 Instance Connect**, scarica una copia del certificato dell'autorità di certificazione (CA) Amazon utilizzando questo comando.

   ```
   curl -o ~/certs/Amazon-root-CA-1.pem \
       https://www.amazontrust.com/repository/AmazonRootCA1.pem
   ```

1. Nella finestra **Amazon EC2 Instance Connect**, esegui il comando seguente per creare la tua chiave privata e pubblica e i file del certificato X.509. Questo comando inoltre registra e attiva il certificato con. AWS IoT

   ```
   aws iot create-keys-and-certificate \
       --set-as-active \
       --certificate-pem-outfile "~/certs/device.pem.crt" \
       --public-key-outfile "~/certs/public.pem.key" \
       --private-key-outfile "~/certs/private.pem.key"
   ```

   La risposta avrà il seguente aspetto. Salva il `certificateArn` in modo da poterlo utilizzare nei comandi successivi. Ne avrai bisogno per collegare il certificato al tuo oggetto e per allegare la policy al certificato in un passaggio successivo.

   ```
   {
       "certificateArn": "arn:aws:iot:us-west-2:123456789012:cert/9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificateId": "9894ba17925e663f1d29c23af4582b8e3b7619c31f3fbd93adcb51ae54b83dc2",
       "certificatePem": "
   -----BEGIN CERTIFICATE-----
   MIICiTCCEXAMPLE6m7oRw0uXOjANBgkqhkiG9w0BAQUFADCBiDELMAkGA1UEBhMC
   VVMxCzAJBgNVBAgEXAMPLEAwDgYDVQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6
   b24xFDASBgNVBAsTC0lBTSEXAMPLE2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAd
   BgkqhkiG9w0BCQEWEG5vb25lQGFtYEXAMPLEb20wHhcNMTEwNDI1MjA0NTIxWhcN
   MTIwNDI0MjA0NTIxWjCBiDELMAkGA1UEBhMCEXAMPLEJBgNVBAgTAldBMRAwDgYD
   VQQHEwdTZWF0dGxlMQ8wDQYDVQQKEwZBbWF6b24xFDAEXAMPLEsTC0lBTSBDb25z
   b2xlMRIwEAYDVQQDEwlUZXN0Q2lsYWMxHzAdBgkqhkiG9w0BCQEXAMPLE25lQGFt
   YXpvbi5jb20wgZ8wDQYJKoZIhvcNAQEBBQADgY0AMIGJAoGBAMaK0dn+aEXAMPLE
   EXAMPLEfEvySWtC2XADZ4nB+BLYgVIk60CpiwsZ3G93vUEIO3IyNoH/f0wYK8m9T
   rDHudUZEXAMPLELG5M43q7Wgc/MbQITxOUSQv7c7ugFFDzQGBzZswY6786m86gpE
   Ibb3OhjZnzcvQAEXAMPLEWIMm2nrAgMBAAEwDQYJKoZIhvcNAQEFBQADgYEAtCu4
   nUhVVxYUntneD9+h8Mg9qEXAMPLEyExzyLwaxlAoo7TJHidbtS4J5iNmZgXL0Fkb
   FFBjvSfpJIlJ00zbhNYS5f6GuoEDEXAMPLEBHjJnyp378OD8uTs7fLvjx79LjSTb
   NYiytVbZPQUQ5Yaxu2jXnimvw3rrszlaEXAMPLE=
   -----END CERTIFICATE-----\n",
       "keyPair": {
           "PublicKey": "-----BEGIN PUBLIC KEY-----\nMIIBIjANBgkqhkEXAMPLEQEFAAOCAQ8AMIIBCgKCAQEAEXAMPLE1nnyJwKSMHw4h\nMMEXAMPLEuuN/dMAS3fyce8DW/4+EXAMPLEyjmoF/YVF/gHr99VEEXAMPLE5VF13\n59VK7cEXAMPLE67GK+y+jikqXOgHh/xJTwo+sGpWEXAMPLEDz18xOd2ka4tCzuWEXAMPLEahJbYkCPUBSU8opVkR7qkEXAMPLE1DR6sx2HocliOOLtu6Fkw91swQWEXAMPLE\GB3ZPrNh0PzQYvjUStZeccyNCx2EXAMPLEvp9mQOUXP6plfgxwKRX2fEXAMPLEDa\nhJLXkX3rHU2xbxJSq7D+XEXAMPLEcw+LyFhI5mgFRl88eGdsAEXAMPLElnI9EesG\nFQIDAQAB\n-----END PUBLIC KEY-----\n",
           "PrivateKey": "-----BEGIN RSA PRIVATE KEY-----\nkey omitted for security reasons\n-----END RSA PRIVATE KEY-----\n"
       }
   }
   ```

1. Nella finestra di **Amazon EC2 Instance Connect**, collega l'oggetto oggetto al certificato appena creato utilizzando il comando seguente e la *certificateArn* risposta del comando precedente.

   ```
   aws iot attach-thing-principal \
       --thing-name "MyIotThing" \
       --principal "certificateArn"
   ```

   Se va a buon fine, questo comando non restituisce alcun output.

**Creazione e collegamento di una policy**

1. Nella finestra **Amazon EC2 Instance Connect**, crea il file della policy copiando e incollando questo documento di policy in un file denominato **\$1/policy.json**.

   Se non disponi di un editor Linux preferito, puoi aprire **nano**, utilizzando questo comando.

   ```
   nano ~/policy.json
   ```

   Incolla il documento di policy per `policy.json` in esso. Salva il file ed esci dall'editor di testo **nano** (Ctrl-X).

   Contenuto del documento di policy per `policy.json`.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Publish",
                   "iot:Subscribe",
                   "iot:Receive",
                   "iot:Connect"
               ],
               "Resource": [
                   "*"
               ]
           }
       ]
   }
   ```

1. Nella finestra **Amazon EC2 Instance Connect** crea la policy utilizzando il comando seguente.

   ```
   aws iot create-policy \
       --policy-name "MyIotThingPolicy" \
       --policy-document "file://~/policy.json"
   ```

   Output:  
****  

   ```
   {
       "policyName": "MyIotThingPolicy",
       "policyArn": "arn:aws:iot:us-east-1:your-aws-account:policy/MyIotThingPolicy",
       "policyDocument": "{
           \"Version\": \"2012-10-17\",
           \"Statement\": [
               {
                   \"Effect\": \"Allow\",
                   \"Action\": [
                       \"iot:Publish\",
                       \"iot:Receive\",
                       \"iot:Subscribe\",
                       \"iot:Connect\"
                   ],
                   \"Resource\": [
                       \"*\"
                   ]
           }
           ]
       }",
       "policyVersionId": "1"
   }
   ```

1. Nella finestra **Amazon EC2 Instance Connect**, collega la policy al certificato del dispositivo virtuale utilizzando il comando seguente.

   ```
   aws iot attach-policy \
       --policy-name "MyIotThingPolicy" \
       --target "certificateArn"
   ```

   Se va a buon fine, questo comando non restituisce alcun output.

## Installa l'SDK AWS IoT del dispositivo per JavaScript
<a name="ec2-sdk"></a>

In questa sezione installerai AWS IoT Device SDK for JavaScript, che contiene il codice con cui le applicazioni possono comunicare AWS IoT e i programmi di esempio. Per ulteriori informazioni, consulta [AWS IoT Device SDK for JavaScript GitHub repository](https://github.com/aws/aws-iot-device-sdk-js-v2).

**Per installare AWS IoT Device SDK for JavaScript sulla tua istanza Linux**

1. Nella finestra **Amazon EC2 Instance Connect**, clona il AWS IoT Device SDK for JavaScript repository nella `aws-iot-device-sdk-js-v2` directory della tua home directory usando questo comando.

   ```
   cd ~
   git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
   ```

1. Naviga nella directory `aws-iot-device-sdk-js-v2` creata nella fase precedente.

   ```
   cd aws-iot-device-sdk-js-v2
   ```

1. Utilizzare npm per installare l'SDK.

   ```
   npm install
   ```

## Esecuzione dell'applicazione di esempio
<a name="ec2-run-app"></a>

 I comandi delle sezioni successive presuppongono che i file di chiave e certificato siano memorizzati sul dispositivo virtuale, come illustrato in questa tabella.


**Nomi dei file dei certificati**  

|  File  |  Percorso del file  | 
| --- | --- | 
|  Chiave privata  |  `~/certs/private.pem.key`  | 
|  Certificato del dispositivo  |  `~/certs/device.pem.crt`  | 
|  Un certificato emesso da una CA root  |  `~/certs/Amazon-root-CA-1.pem`  | 

In questa sezione, installerai ed eseguirai l'app di `pub-sub.js` esempio che si trova nella `aws-iot-device-sdk-js-v2/samples/node` directory del Device SDK per. AWS IoT JavaScript Questa app mostra come un dispositivo, la tua istanza Amazon EC2, utilizza la libreria MQTT per pubblicare ed effettuare la sottoscrizione ai messaggi MQTT. L'app di esempio `pub-sub.js` esegue la sottoscrizione a un argomento `topic_1`, pubblica 10 messaggi in tale argomento e visualizza i messaggi ricevuti dal broker di messaggi.

**Per installare ed eseguire l'app di esempio**

1. Nella finestra **Amazon EC2 Instance Connect**, accedi alla directory `aws-iot-device-sdk-js-v2/samples/node/pub_sub` che l'SDK ha creato e installa l'app di esempio utilizzando questi comandi.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. Nella finestra di **Amazon EC2 Instance Connect**, accedi *your-iot-endpoint* AWS IoT utilizzando questo comando.

   ```
   aws iot describe-endpoint --endpoint-type iot:Data-ATS
   ```

1. Nella finestra **Amazon EC2 Instance Connect**, inserisci *your-iot-endpoint* come indicato ed esegui questo comando.

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

L'applicazione di esempio:

1. Si AWS IoT Core connette al tuo account.

1. Sottoscrive l'argomento del messaggio **topic\$11** e visualizza i messaggi ricevuti su tale argomento.

1. Pubblica 10 messaggi sull’argomento **topic\$11**.

1. L'output sia simile a quello riportato di seguito:

   ```
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":1}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":2}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":3}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":4}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":5}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":6}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":7}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":8}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":9}
   Publish received. topic:"topic_1" dup:false qos:1 retain:false
   {"message":"Hello world!","sequence":10}
   ```

In caso di problemi nell'esecuzione dell'app di esempio, consulta [Risolvi i problemi con l'applicazione di esempio](gs-device-troubleshoot.md).

È inoltre possibile aggiungere il parametro `--verbosity debug` alla riga di comando in modo che l'app di esempio visualizzi messaggi dettagliati su ciò che sta facendo. Tali informazioni potrebbero fornirti l'aiuto necessario per risolvere il problema.

## Visualizza i messaggi dell'app di esempio nella AWS IoT console
<a name="ec2-view-msg"></a>

È possibile visualizzare i messaggi dell'app di esempio durante il passaggio attraverso il broker di messaggi utilizzando il **client di test MQTT** nella **console AWS IoT **.

**Per visualizzare i messaggi MQTT pubblicati dall'app di esempio**

1. Verificare [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md). In questo modo si impara come utilizzare il **client di test MQTT** nella **console AWS IoT ** per visualizzare i messaggi MQTT durante il passaggio attraverso il broker di messaggi.

1. Apri il **client di test MQTT** nella **console AWS IoT **.

1. In **Subscribe to a topic** (Sottoscrizione a un argomento), effettua la sottoscrizione all'argomento, **topic\$11**.

1. Nella finestra **Amazon EC2 Instance Connect**, esegui nuovamente l'app di esempio e guarda i messaggi nel **client d test MQTT** nella **console AWS IoT **.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

Per ulteriori informazioni su MQTT e su come AWS IoT Core supporta il protocollo, vedere [MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html).

# Usa il tuo PC o Mac Windows o Linux come dispositivo AWS IoT
<a name="using-laptop-as-device"></a>

In questo tutorial, configurerai un personal computer da utilizzare con AWS IoT. Queste istruzioni supportano Windows, Linux PCs e Mac. Per eseguire questa operazione, è necessario installare alcuni software sul computer. Se non desideri installare software sul computer, puoi provare [Crea un dispositivo virtuale con Amazon EC2](creating-a-virtual-thing.md) che installa tutto il software in una macchina virtuale.

**Topics**
+ [Configurare il tuo personal computer](#gs-pc-prereqs)
+ [Installa Git, Python e AWS IoT Device SDK per Python](#gs-pc-sdk-node)
+ [Configurare la policy ed eseguire l'applicazione di esempio](#gs-pc-python-app-run)
+ [Visualizza i messaggi dell'app di esempio nella AWS IoT console](#gs-pc-view-msg)
+ [Esecuzione dell'esempio Sottoscrizione condivisa in Python](#gs-pc-shared-subscription-example)

## Configurare il tuo personal computer
<a name="gs-pc-prereqs"></a>

Per completare questo tutorial, è necessario un PC Windows o Linux o un Mac con connessione a Internet.

Prima di continuare con la fase successiva, assicurati di poter aprire una finestra della riga di comando nel computer. Utilizza **cmd.exe** su un PC Windows. Su un PC Linux o un Mac, usa **Terminal**.

## Installa Git, Python e AWS IoT Device SDK per Python
<a name="gs-pc-sdk-node"></a>

In questa sezione installerai Python e AWS IoT Device SDK for Python sul tuo computer. 

### Installa e usa la versione più recente di Git e di Python
<a name="gs-pc-node-runtime"></a>

Questa procedura spiega come installare l'ultima versione di Git e Python sul tuo personal computer.

**Per scaricare e installare Git e Python sul tuo computer**

1. Verificare che sia installato Git nel computer. Nella riga di comando, immetti questo comando.

   ```
   git --version
   ```

   Se il comando visualizza la versione Git, Git è installato e puoi continuare con la fase successiva.

   Se il comando visualizza un errore, apri [https://git-scm.com/download](https://git-scm.com/download) e installa Git per il tuo computer.

1. Verifica che Python non sia già installato. Inserisci questo comando nella riga di comando.

   ```
   python -V
   ```
**Nota**  
Se questo comando dà un errore: `Python was not found`, potrebbe essere perché il tuo sistema operativo chiama l'eseguibile Python v3.x come `Python3`. In tal caso, sostituisci tutte le istanze di `python` con `python3` e continua il resto di questo tutorial.

   Se il comando visualizza la versione Python, Python è già installato. Questo tutorial richiede Python v3.7 o versioni successive.

1. Se Python è installato, puoi ignorare i passaggi rimanenti in questa sezione. Altrimenti, continua.

1. Apri [https://www.python.org/downloads/](https://www.python.org/downloads/) e scarica il programma di installazione per il tuo computer.

1. Se il download non ha avviato automaticamente l'installazione, esegui il programma scaricato per installare Python.

1. Verificare l'installazione di Python.

   ```
   python -V
   ```

   Conferma che il comando visualizzi la versione di Python. Se la versione di Python non viene visualizzata, prova a scaricare e installare nuovamente Python.

### Installa l'SDK AWS IoT del dispositivo per Python
<a name="gs-pc-python-intall-sdk"></a>

**Per installare AWS IoT Device SDK for Python sul tuo computer**

1. Installa la v2 del AWS IoT Device SDK for Python.

   ```
   python3 -m pip install awsiotsdk
   ```

1. Clona il repository AWS IoT Device SDK for Python nella directory aws-iot-device-sdk -python-v2 della tua home directory. Questa procedura si riferisce alla directory di base per i file come installi. *home*

   La posizione effettiva della *home* directory dipende dal sistema operativo in uso.

------
#### [ Linux/macOS ]

   In macOS e Linux, la *home* directory è. `~`

   ```
   cd ~ 
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ Windows ]

   In Windows, puoi trovare il percorso della *home* directory eseguendo questo comando nella `cmd` finestra.

   ```
   echo %USERPROFILE%
   cd %USERPROFILE%
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
**Nota**  
Se utilizzi Windows PowerShell anziché 1**cmd.exe**, utilizza il seguente comando.  

   ```
   echo $home
   ```

Per ulteriori informazioni, consultate il repository [AWS IoT Device SDK for GitHub Python](https://github.com/aws/aws-iot-device-sdk-python-v2).

### Preparazione dell'esecuzione delle applicazioni di esempio
<a name="gs-pc-python-config-app"></a>

**Per preparare il sistema all'esecuzione dell'applicazione di esempio**
+ Creazione della directory `certs`. Nella directory `certs`, copia i file della chiave privata, del certificato del dispositivo e del certificato CA root salvati quando è stato creato e registrato l'oggetto in [Crea AWS IoT risorse](create-iot-resources.md). I nomi di file di ogni file nella directory di destinazione devono corrispondere a quelli della tabella.

   I comandi della sezione successiva presuppongono che i file di chiave e certificato siano memorizzati sul dispositivo, come illustrato in questa tabella.

------
#### [ Linux/macOS ]

  Esegui questo comando per creare la sottodirectory `certs` che verrà utilizzata quando si eseguono le applicazioni di esempio.

  ```
  mkdir ~/certs
  ```

  Nella nuova sottodirectory, copia i file nei percorsi dei file di destinazione indicati nella tabella riportata di seguito.  
**Nomi dei file dei certificati**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/using-laptop-as-device.html)

  Esegui questo comando per elencare i file nella directory `certs` e confrontarli con quelli elencati nella tabella.

  ```
  ls -l ~/certs
  ```

------
#### [ Windows ]

  Esegui questo comando per creare la sottodirectory `certs` che verrà utilizzata quando si eseguono le applicazioni di esempio.

  ```
  mkdir %USERPROFILE%\certs
  ```

  Nella nuova sottodirectory, copia i file nei percorsi dei file di destinazione indicati nella tabella riportata di seguito.  
**Nomi dei file dei certificati**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/using-laptop-as-device.html)

  Esegui questo comando per elencare i file nella directory `certs` e confrontarli con quelli elencati nella tabella.

  ```
  dir %USERPROFILE%\certs
  ```

------

## Configurare la policy ed eseguire l'applicazione di esempio
<a name="gs-pc-python-app-run"></a>

In questa sezione imposterai la policy ed eseguirai lo script di esempio `pubsub.py` trovato nella directory `aws-iot-device-sdk-python-v2/samples` di SDK per dispositivi AWS IoT per Python. Questo script mostra come il dispositivo utilizza la libreria MQTT per pubblicare e effettuare la sottoscrizione ai messaggi MQTT.

L'app di esempio `pubsub.py` sottoscrive un argomento `test/topic`, pubblica 10 messaggi in tale argomento e visualizza i messaggi ricevuti dal broker messaggi.

Per eseguire l'applicazione di esempio `pubsub.py` sono necessarie le seguenti informazioni:


**Valori dei parametri dell'applicazione**  

|  Parametro  |  Dove trovare il valore  | 
| --- | --- | 
| your-iot-endpoint |  [\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/using-laptop-as-device.html)  | 

Il *your-iot-endpoint* valore ha il formato:`endpoint_id-ats.iot.region.amazonaws.com`, ad esempio,. `a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`

Prima di eseguire lo script, assicurati che le policy relative alle informazioni forniscano le autorizzazioni per lo script di esempio per connettersi, sottoscrivere, pubblicare e ricevere. 

**Per trovare e rivedere il documento della policy per una risorsa oggetto**

1. Nella [console AWS IoT](https://console.aws.amazon.com//iot/home#/thinghub), nell'elenco **Things (Oggetti)**, trova la risorsa oggetto che rappresenta il tuo dispositivo.

1. Scegli il link di **Name (Nome)** della risorsa oggetto che rappresenta il tuo dispositivo per aprire la pagina **Thing details (Dettagli dell'oggetto)**.

1. Nella pagina **Thing details (Dettagli dell'oggetto)**, nella scheda **Certificates (Certificati)**, scegli il certificato allegato alla risorsa oggetto. Dovrebbe esserci un solo certificato nell'elenco. Se ci sono più certificati, scegli il certificato i cui sono installati i file sul tuo dispositivo e che verrà utilizzato per connetterti ad AWS IoT Core.

   Nella pagina dei dettagli del **Certificate (Certificato)**, nella scheda **Policies (Policy)**, scegli la policy allegata al certificato. Dovrebbe essercene solo uno. Se ce n'è più di uno, ripeti il passaggio successivo per assicurarti che almeno una policy conceda l'accesso richiesto.

1. Nella pagina di panoramica **Policy**, trova l'editor JSON e scegli **Edit policy document (Modifica documento della policy)** per rivedere e modificare il documento della policy secondo necessità.

1. Nell'esempio seguente viene visualizzata la policy JSON. Nell'`"Resource"`elemento, sostituisci `region:account` con il tuo Regione AWS e Account AWS in ciascuno dei `Resource` valori.  
****  

   ```
   {
       "Version":"2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Publish",
                   "iot:Receive"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topic/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Subscribe"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:topicfilter/test/topic"
               ]
           },
           {
               "Effect": "Allow",
               "Action": [
                   "iot:Connect"
               ],
               "Resource": [
               "arn:aws:iot:us-east-1:123456789012:client/test-*"
               ]
           }
       ]
   }
   ```

------
#### [ Linux/macOS ]

**Per eseguire lo script di esempio su Linux/macOS**

1. Nella finestra a riga di comando passa alla directory `~/aws-iot-device-sdk-python-v2/samples/node/pub_sub` che l'SDK ha creato utilizzando questi comandi.

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. Nella finestra della riga di comando, sostituisci *your-iot-endpoint* come indicato ed esegui questo comando.

   ```
   python3 pubsub.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key
   ```

------
#### [ Windows ]

**Per eseguire l'applicazione di esempio su un PC Windows**

1. Nella finestra a riga di comando passa alla directory `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` che l'SDK ha creato e installa l'app di esempio utilizzando questi comandi.

   ```
   cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
   ```

1. Nella finestra della riga di comando, sostituisci *your-iot-endpoint* come indicato ed esegui questo comando.

   ```
   python3 pubsub.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key
   ```

------

Lo script di esempio:

1. Si connette al AWS IoT Core file per il tuo account.

1. Sottoscrive l'argomento del messaggio **test/argomento** e visualizza i messaggi ricevuti su tale argomento.

1. Pubblica 10 messaggi sull'argomento **test/argomento**.

1. L'output sia simile a quello riportato di seguito:

```
Connected!
Subscribing to topic 'test/topic'...
Subscribed with QoS.AT_LEAST_ONCE
Sending 10 message(s)
Publishing message to topic 'test/topic': Hello World! [1]
Received message from topic 'test/topic': b'"Hello World! [1]"'
Publishing message to topic 'test/topic': Hello World! [2]
Received message from topic 'test/topic': b'"Hello World! [2]"'
Publishing message to topic 'test/topic': Hello World! [3]
Received message from topic 'test/topic': b'"Hello World! [3]"'
Publishing message to topic 'test/topic': Hello World! [4]
Received message from topic 'test/topic': b'"Hello World! [4]"'
Publishing message to topic 'test/topic': Hello World! [5]
Received message from topic 'test/topic': b'"Hello World! [5]"'
Publishing message to topic 'test/topic': Hello World! [6]
Received message from topic 'test/topic': b'"Hello World! [6]"'
Publishing message to topic 'test/topic': Hello World! [7]
Received message from topic 'test/topic': b'"Hello World! [7]"'
Publishing message to topic 'test/topic': Hello World! [8]
Received message from topic 'test/topic': b'"Hello World! [8]"'
Publishing message to topic 'test/topic': Hello World! [9]
Received message from topic 'test/topic': b'"Hello World! [9]"'
Publishing message to topic 'test/topic': Hello World! [10]
Received message from topic 'test/topic': b'"Hello World! [10]"'
10 message(s) received.
Disconnecting...
Disconnected!
```

In caso di problemi nell'esecuzione dell'app di esempio, consulta [Risolvi i problemi con l'applicazione di esempio](gs-device-troubleshoot.md).

È inoltre possibile aggiungere il parametro `--verbosity Debug` alla riga di comando in modo che l'app di esempio visualizzi messaggi dettagliati su ciò che sta facendo. Tali informazioni potrebbero aiutarti a correggere il problema.

## Visualizza i messaggi dell'app di esempio nella AWS IoT console
<a name="gs-pc-view-msg"></a>

È possibile visualizzare i messaggi dell'app di esempio durante il passaggio attraverso il broker di messaggi utilizzando il **client di test MQTT** nella **console AWS IoT **.

**Per visualizzare i messaggi MQTT pubblicati dall'app di esempio**

1. Verificare [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md). In questo modo si impara come utilizzare il **client di test MQTT** nella **console AWS IoT ** per visualizzare i messaggi MQTT durante il passaggio attraverso il broker di messaggi.

1. Apri il **client di test MQTT** nella **console AWS IoT **.

1. In **Subscribe to a topic** (Sottoscrizione a un argomento), effettua la sottoscrizione all'argomento, **test/topic**.

1. Nella finestra a riga di comando, esegui di nuovo l'app di esempio e guarda i messaggi nel **Client MQTT** nella **console AWS IoT **.

------
#### [ Linux/macOS ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic test/topic --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ Windows ]

   ```
   cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
   python3 pubsub.py --topic test/topic --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --endpoint your-iot-endpoint
   ```

------

Per ulteriori informazioni su MQTT e su come AWS IoT Core supporta il protocollo, vedere [MQTT](https://docs.aws.amazon.com//iot/latest/developerguide/mqtt.html).

## Esecuzione dell'esempio Sottoscrizione condivisa in Python
<a name="gs-pc-shared-subscription-example"></a>

AWS IoT Core supporta [sottoscrizioni condivise](mqtt.md#mqtt5-shared-subscription) sia per MQTT 3 che per MQTT 5. Sottoscrizioni condivise consentono a più client di condividere una sottoscrizione a un argomento e solo un client riceverà i messaggi pubblicati su tale argomento utilizzando una distribuzione casuale. Per utilizzare Sottoscrizioni condivise, i client effettuano la sottoscrizione al [filtro di argomenti](https://docs.aws.amazon.com//iot/latest/developerguide/topics.html#topicfilters) di una sottoscrizione condivisa: `$share/{ShareName}/{TopicFilter}`. 

**Per configurare la policy ed eseguire l'esempio Sottoscrizione condivisa**

1. Per eseguire l'esempio Sottoscrizione condivisa, è necessario impostare la policy dell'oggetto come documentato in [MQTT 5 Shared Subscription](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription). 

1. Per eseguire l'esempio Sottoscrizione condivisa, esegui i comandi seguenti.

------
#### [ Linux/macOS ]

**Per eseguire lo script di esempio su Linux/macOS**

   1. Nella finestra a riga di comando passa alla directory `~/aws-iot-device-sdk-python-v2/samples` che l'SDK ha creato utilizzando questi comandi.

      ```
      cd ~/aws-iot-device-sdk-python-v2/samples
      ```

   1. Nella finestra della riga di comando, sostituisci *your-iot-endpoint* come indicato ed esegui questo comando.

      ```
      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --group_identifier consumer
      ```

------
#### [ Windows ]

**Per eseguire l'applicazione di esempio su un PC Windows**

   1. Nella finestra a riga di comando passa alla directory `%USERPROFILE%\aws-iot-device-sdk-python-v2\samples` che l'SDK ha creato e installa l'app di esempio utilizzando questi comandi.

      ```
      cd %USERPROFILE%\aws-iot-device-sdk-python-v2\samples
      ```

   1. Nella finestra della riga di comando, sostituisci *your-iot-endpoint* come indicato ed esegui questo comando.

      ```
      python3 mqtt5_shared_subscription.py --endpoint your-iot-endpoint --ca_file %USERPROFILE%\certs\Amazon-root-CA-1.pem --cert %USERPROFILE%\certs\device.pem.crt --key %USERPROFILE%\certs\private.pem.key --group_identifier consumer
      ```

------
**Nota**  
Facoltativamente, puoi specificare un identificatore gruppo in base alle tue esigenze quando esegui l'esempio (ad esempio, `--group_identifier consumer`). Se non viene specificato, `python-sample` è l'identificatore gruppo predefinito.

1. L'aspetto dell'output nella riga di comando può essere simile al seguente:

   ```
   Publisher]: Lifecycle Connection Success
   [Publisher]: Connected
   Subscriber One]: Lifecycle Connection Success
   [Subscriber One]: Connected
   Subscriber Two]: Lifecycle Connection Success
   [Subscriber Two]: Connected
   [Subscriber One]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber One]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>]
   [Subscriber Two]: Subscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber Two]: Full subscribed topic is: '$share/consumer/test/topic' with SubAck code: [<SubackReasonCode.GRANTED_QOS_1: 1>]
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [1]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [2]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [3]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [4]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [5]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [6]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [7]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [8]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber Two] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [9]"'
   [Publisher]: Sent publish and got PubAck code: <PubackReasonCode.SUCCESS: 0>
   [Subscriber One] Received a publish
           Publish received message on topic: test/topic
           Message: b'"Hello World!  [10]"'
   [Subscriber One]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber One]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code: [<UnsubackReasonCode.SUCCESS: 0>]
   [Subscriber Two]: Unsubscribed to topic 'test/topic' in shared subscription group 'consumer'.
   [Subscriber Two]: Full unsubscribed topic is: '$share/consumer/test/topic' with UnsubAck code [<UnsubackReasonCode.SUCCESS: 0>]
   Publisher]: Lifecycle Disconnected
   [Publisher]: Lifecycle Stopped
   [Publisher]: Fully stopped
   Subscriber One]: Lifecycle Disconnected
   [Subscriber One]: Lifecycle Stopped
   [Subscriber One]: Fully stopped
   Subscriber Two]: Lifecycle Disconnected
   [Subscriber Two]: Lifecycle Stopped
   [Subscriber Two]: Fully stopped
   Complete!
   ```

1. Apri **Client di test MQTT** nella **console AWS IoT **. In **Sottoscrizione a un argomento**, effettua la sottoscrizione all'argomento della Sottoscrizione condivisa, ad esempio: `$share/consumer/test/topic`. Puoi specificare un identificatore gruppo in base alle tue esigenze quando esegui l'esempio (ad esempio, `--group_identifier consumer`). Se non specifichi un identificatore gruppo, il valore predefinito è `python-sample`. Per ulteriori informazioni, consultare [esempio Python MQTT 5 Shared Subscription](https://github.com/aws/aws-iot-device-sdk-python-v2/blob/main/samples/mqtt5_shared_subscription.md#mqtt5-shared-subscription) e [Sottoscrizioni condivise](mqtt.md#mqtt5-shared-subscription) nella *Guida per gli sviluppatori di AWS IoT Core *.

   Nella finestra a riga di comando, esegui nuovamente l'app di esempio e guarda la distribuzione dei messaggi nel **Client di test MQTT** della **Console AWS IoT ** e la riga di comando.  
![\[La pagina di output delle sottoscrizioni condivise.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/shared-subscription-output.png)

# Connettere un Raspberry Pi o altro dispositivo
<a name="connecting-to-existing-device"></a>

In questa sezione, configureremo un Raspberry Pi da utilizzare con. AWS IoT Se hai un altro dispositivo che desideri collegare, le istruzioni per Raspberry Pi includono riferimenti che possono aiutarti ad adattare queste istruzioni al tuo dispositivo.

Normalmente questo richiede circa 20 minuti, ma può richiedere più tempo se si hanno molti aggiornamenti del software di sistema da installare.

**Topics**
+ [Configurare il dispositivo](#gs-device-prereqs)
+ [Installa gli strumenti e le librerie necessari per AWS IoT Device SDK](#gs-device-sdk-tools)
+ [Installa AWS IoT Device SDK](#gs-device-install-sdk)
+ [Installazione ed esecuzione dell'applicazione di esempio](#gs-device-node-app-run)
+ [Visualizza i messaggi dell'app di esempio nella AWS IoT console](#gs-device-view-msg)

**Importante**  
Adattare queste istruzioni ad altri dispositivi e sistemi operativi può essere difficile. Dovrai comprendere abbastanza bene il tuo dispositivo da poter interpretare queste istruzioni e applicarle al tuo dispositivo.  
Se riscontri difficoltà durante la configurazione del dispositivo per AWS IoT, potresti provare una delle altre opzioni del dispositivo come alternativa, ad esempio o. [Crea un dispositivo virtuale con Amazon EC2](creating-a-virtual-thing.md) [Usa il tuo PC o Mac Windows o Linux come dispositivo AWS IoT](using-laptop-as-device.md)

## Configurare il dispositivo
<a name="gs-device-prereqs"></a>

L'obiettivo di questo passaggio è raccogliere ciò che è necessario per configurare il dispositivo in modo che possa avviare il sistema operativo (OS), connettersi a Internet e consentire di interagire con esso tramite un'interfaccia a riga di comando.

Per completare questo tutorial, è necessario quanto segue:
+ Un Account AWS. Se non disponi dell'account, effettua la procedura descritta in [Configurare Account AWS](setting-up.md) prima di continuare.
+ Un [modello Raspberry Pi 3 B](https://www.raspberrypi.com/products/) o più recente. Questo potrebbe funzionare su versioni precedenti di Raspberry Pi, ma non sono state testate.
+ [Raspberry Pi OS (32 bit)](https://www.raspberrypi.com/software/operating-systems/) o versione successiva. Ti consigliamo di utilizzare sempre la versione più recente di Raspberry Pi OS. Le versioni precedenti del sistema operativo potrebbero funzionare, ma non sono state testate.

  Per eseguire questo esempio, non è necessario installare il desktop con l'interfaccia grafica utente (GUI); tuttavia, se sei nuovo di Raspberry Pi e l'hardware Raspberry Pi lo supporta, l'utilizzo del desktop con la GUI potrebbe essere più semplice.
+ Una WiFi connessione Ethernet o.
+ Tastiera, mouse, monitor, cavi, alimentatori e altro hardware richiesto dal dispositivo.

**Importante**  
Prima di continuare con la fase successiva, è necessario che il sistema operativo sia installato, configurato e in esecuzione. Il dispositivo deve essere connesso a Internet e deve essere possibile accedere al dispositivo utilizzando la sua interfaccia da riga di comando. L'accesso della riga di comando può avvenire tramite tastiera, mouse e monitor collegati direttamente o utilizzando un'interfaccia remota del terminale SSH.

 Se sul Raspberry Pi è in esecuzione un sistema operativo che dispone di un'interfaccia utente grafica (GUI), apri una finestra di terminale sul dispositivo ed esegui le seguenti istruzioni in tale finestra. In caso contrario, se ci si connette al dispositivo utilizzando un terminale remoto, ad esempio PuTTY, apri un terminale remoto sul dispositivo e utilizzalo.

## Installa gli strumenti e le librerie necessari per AWS IoT Device SDK
<a name="gs-device-sdk-tools"></a>

Prima di installare il AWS IoT Device SDK e il codice di esempio, assicurati che il sistema sia aggiornato e disponga degli strumenti e delle librerie necessari per installare. SDKs

1. 

**Aggiorna il sistema operativo e installa le librerie richieste**  
Prima di installare un AWS IoT Device SDK, esegui questi comandi in una finestra di terminale del dispositivo per aggiornare il sistema operativo e installare le librerie richieste.

   ```
   sudo apt-get update
   ```

   ```
   sudo apt-get upgrade
   ```

   ```
   sudo apt-get install cmake
   ```

   ```
   sudo apt-get install libssl-dev
   ```

1. 

**Installa Git**  
Se nel sistema operativo del tuo dispositivo non è installato Git, devi installarlo per installare AWS IoT Device SDK for JavaScript. 

   1. Verifica se Git è già installato eseguendo questo comando.

      ```
      git --version
      ```

   1. Se il comando precedente restituisce la versione Git, Git è già installato ed è possibile passare alla fase 3.

   1. Se viene visualizzato un errore quando esegui il comando **git**, installa Git eseguendo questo comando.

      ```
      sudo apt-get install git
      ```

   1. Prova di nuovo per vedere se Git è installato eseguendo questo comando.

      ```
      git --version
      ```

   1. Se Git è installato, passa alla sezione successiva. In caso contrario, risolvi e correggi l'errore prima di continuare. Hai bisogno di Git per installare l'SDK AWS IoT del dispositivo. JavaScript

## Installa AWS IoT Device SDK
<a name="gs-device-install-sdk"></a>

Installa l'SDK AWS IoT del dispositivo.

------
#### [ Python ]

In questa sezione installerai Python, i suoi strumenti di sviluppo e AWS IoT Device SDK for Python sul tuo dispositivo. Queste istruzioni sono per un Raspberry Pi con il sistema operativo Raspberry Pi più recente. Se disponi di un altro dispositivo o utilizzi un altro sistema operativo, potrebbe essere necessario adattare queste istruzioni per il dispositivo.

1. 

**Installa Python e i suoi strumenti di sviluppo**  
Il AWS IoT Device SDK for Python richiede l'installazione di Python v3.5 o versione successiva sul tuo Raspberry Pi.

   In una finestra di terminale del dispositivo, esegui questi comandi.

   1. Esegui questo comando per determinare la versione di Python installata sul dispositivo.

      ```
      python3 --version
      ```

      Se Python è installato, mostrerà la sua versione.

   1. Se la versione visualizzata è `Python 3.5` o superiore, puoi passare alla fase 2.

   1. Se la versione visualizzata è inferiore a `Python 3.5`, puoi installare la versione corretta eseguendo questo comando.

      ```
      sudo apt install python3
      ```

   1. Esegui questo comando per confermare che la versione corretta di Python è ora installata.

      ```
      python3 --version
      ```

1. 

**Test per pip3**  
In una finestra di terminale del dispositivo, esegui questi comandi.

   1. Esegui questo comando per vedere se **pip3** è installato.

      ```
      pip3 --version
      ```

   1. Se il comando restituisce un numero di versione, **pip3** è installato e puoi passare alla fase 3.

   1. Se il comando precedente restituisce un errore, esegui questo comando per installare **pip3**.

      ```
      sudo apt install python3-pip
      ```

   1. Esegui questo comando per vedere se **pip3** è installato.

      ```
      pip3 --version
      ```

1. 

**Installa l'attuale AWS IoT Device SDK per Python**  
Installa AWS IoT Device SDK for Python e scarica le app di esempio sul tuo dispositivo.

   Sul dispositivo, esegui questi comandi.

   ```
   cd ~
   python3 -m pip install awsiotsdk
   ```

   ```
   git clone https://github.com/aws/aws-iot-device-sdk-python-v2.git
   ```

------
#### [ JavaScript ]

In questa sezione installerai Node.js, il gestore di pacchetti npm e AWS IoT Device SDK for JavaScript sul tuo dispositivo. Queste istruzioni sono per un Raspberry Pi che esegue il sistema operativo Raspberry Pi. Se disponi di un altro dispositivo o utilizzi un altro sistema operativo, potrebbe essere necessario adattare queste istruzioni per il dispositivo.

1. 

**Installare la versione più recente di Node.js**  
Il AWS IoT Device SDK for JavaScript richiede l'installazione di Node.js e del gestore di pacchetti npm sul tuo Raspberry Pi.

   1. Scarica la versione più recente del repository Node immettendo questo comando.

      ```
      cd ~
      curl -sL https://deb.nodesource.com/setup_12.x | sudo -E bash -
      ```

   1. Installa Node e npm.

      ```
      sudo apt-get install -y nodejs
      ```

   1. Verifica l'installazione di Node.

      ```
      node -v
      ```

      Verifica che il comando visualizzi la versione di Node. Questo tutorial richiede Node 10.0 o versioni successive. Se la versione di Node non viene visualizzata, prova a scaricare di nuovo il repository di Node.

   1. Verifica l'installazione di npm.

      ```
      npm -v
      ```

      Conferma che il comando visualizzi la versione di npm. Se la versione npm non viene visualizzata, provare a installare nuovamente Node e npm.

   1. Riavviare il dispositivo.

      ```
      sudo shutdown -r 0
      ```

      Continua dopo il riavvio del dispositivo.

1. 

**Installa il Device SDK per AWS IoT JavaScript**  
Installa il AWS IoT Device SDK for JavaScript sul tuo Raspberry Pi.

   1. Clona il AWS IoT Device SDK for JavaScript repository nella directory della `aws-iot-device-sdk-js-v2` tua directory. *home* Sul Raspberry Pi, la *home* directory è`~/`, che viene utilizzata come *home* directory nei seguenti comandi. Se il dispositivo utilizza un percorso diverso per la *home* directory, è necessario sostituirlo `~/` con il percorso corretto per il dispositivo nei seguenti comandi.

      Questi comandi creano la directory `~/aws-iot-device-sdk-js-v2` e copiano il codice SDK in esso.

      ```
      cd ~
      git clone https://github.com/aws/aws-iot-device-sdk-js-v2.git
      ```

   1. Passa alla directory `aws-iot-device-sdk-js-v2` creata nella fase precedente ed esegui `npm install` per installare l'SDK. Il comando `npm install` chiama la compilazione della libreria `aws-crt`, operazione che può richiedere alcuni minuti.

      ```
      cd ~/aws-iot-device-sdk-js-v2
      npm install
      ```

------

## Installazione ed esecuzione dell'applicazione di esempio
<a name="gs-device-node-app-run"></a>

In questa sezione, installerai ed eseguirai l'app di `pubsub` esempio disponibile nel AWS IoT Device SDK. Questa app mostra come il tuo dispositivo utilizza la libreria MQTT per pubblicare ed effettuare la sottoscrizione ai messaggi MQTT. L'app di esempio sottoscrive un argomento `topic_1`, pubblica 10 messaggi in tale argomento e visualizza i messaggi ricevuti dal broker di messaggi.

**Installazione dei file di certificato**  
L'app di esempio richiede i file di certificato che autenticano il dispositivo da installare sul dispositivo.

**Per installare i file di certificato del dispositivo per l'app di esempio**

1. Crea una `certs` sottodirectory nella tua *home* directory eseguendo questi comandi.

   ```
   cd ~
   mkdir certs
   ```

1. Copia nella directory `~/certs` il certificato, la chiave privata e il certificato CA root creato precedentemente in [Crea AWS IoT risorse](create-iot-resources.md).

   La modalità di copia dei file di certificato sul dispositivo dipende dal dispositivo e dal sistema operativo e non è descritto qui. Tuttavia, se il dispositivo supporta un'interfaccia utente grafica (GUI) e dispone di un browser Web, è possibile eseguire la procedura descritta in [Crea AWS IoT risorse](create-iot-resources.md) dal browser web del dispositivo per scaricare i file risultanti direttamente sul dispositivo.

   I comandi della sezione successiva presuppongono che i file di chiave e certificato siano memorizzati sul dispositivo, come illustrato in questa tabella.  
**Nomi dei file dei certificati**    
[\[See the AWS documentation website for more details\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/connecting-to-existing-device.html)

Per eseguire l'app di esempio sono necessarie le seguenti informazioni:


**Valori dei parametri dell'applicazione**  

|  Parametro  |  Dove trovare il valore  | 
| --- | --- | 
| your-iot-endpoint |  Nella [console AWS IoT](https://console.aws.amazon.com/iot/home), scegli **All devices** (Tutti i dispositivi) e quindi **Things** (Oggetti). Nella pagina **Impostazioni** del AWS IoT menu. L'endpoint viene visualizzato nella sezione **Device data endpoint** (Endpoint dei dati del dispositivo).  | 

Il *your-iot-endpoint* valore ha un formato di:`endpoint_id-ats.iot.region.amazonaws.com`, ad esempio,`a3qj468EXAMPLE-ats.iot.us-west-2.amazonaws.com`.

------
#### [ Python ]

**Per installare ed eseguire l'app di esempio**

1. Passa alla directory delle app di esempio.

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   ```

1. Nella finestra della riga di comando, sostituisci *your-iot-endpoint* come indicato ed esegui questo comando.

   ```
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. Osserva che l'applicazione di esempio:

   1. Si connette al AWS IoT servizio del tuo account.

   1. Sottoscrive l'argomento del messaggio **topic\$11** e visualizza i messaggi ricevuti su tale argomento.

   1. Pubblica 10 messaggi sull’argomento **topic\$11**.

   1. L'output sia simile a quello riportato di seguito:

   ```
   Connecting to a3qEXAMPLEffp-ats.iot.us-west-2.amazonaws.com with client ID 'test-0c8ae2ff-cc87-49d2-a82a-ae7ba1d0ca5a'...
   Connected!
   Subscribing to topic 'topic_1'...
   Subscribed with QoS.AT_LEAST_ONCE
   Sending 10 message(s)
   Publishing message to topic 'topic_1': Hello World! [1]
   Received message from topic 'topic_1': b'Hello World! [1]'
   Publishing message to topic 'topic_1': Hello World! [2]
   Received message from topic 'topic_1': b'Hello World! [2]'
   Publishing message to topic 'topic_1': Hello World! [3]
   Received message from topic 'topic_1': b'Hello World! [3]'
   Publishing message to topic 'topic_1': Hello World! [4]
   Received message from topic 'topic_1': b'Hello World! [4]'
   Publishing message to topic 'topic_1': Hello World! [5]
   Received message from topic 'topic_1': b'Hello World! [5]'
   Publishing message to topic 'topic_1': Hello World! [6]
   Received message from topic 'topic_1': b'Hello World! [6]'
   Publishing message to topic 'topic_1': Hello World! [7]
   Received message from topic 'topic_1': b'Hello World! [7]'
   Publishing message to topic 'topic_1': Hello World! [8]
   Received message from topic 'topic_1': b'Hello World! [8]'
   Publishing message to topic 'topic_1': Hello World! [9]
   Received message from topic 'topic_1': b'Hello World! [9]'
   Publishing message to topic 'topic_1': Hello World! [10]
   Received message from topic 'topic_1': b'Hello World! [10]'
   10 message(s) received.
   Disconnecting...
   Disconnected!
   ```

   In caso di problemi nell'esecuzione dell'app di esempio, consulta [Risolvi i problemi con l'applicazione di esempio](gs-device-troubleshoot.md).

   È inoltre possibile aggiungere il parametro `--verbosity Debug` alla riga di comando in modo che l'app di esempio visualizzi messaggi dettagliati su ciò che sta facendo. Tali informazioni potrebbero fornirti l'aiuto necessario per risolvere il problema.

------
#### [ JavaScript ]

**Per installare ed eseguire l'app di esempio**

1. Nella finestra a riga di comando passa alla directory `~/aws-iot-device-sdk-js-v2/samples/node/pub_sub` che l'SDK ha creato e installa l'app di esempio utilizzando questi comandi. Il comando `npm install` chiama la compilazione della libreria `aws-crt`, operazione che può richiedere alcuni minuti.

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   npm install
   ```

1. Nella finestra della riga di comando, sostituisci *your-iot-endpoint* come indicato ed esegui questo comando.

   ```
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

1. Osserva che l'applicazione di esempio:

   1. Si connette al AWS IoT servizio del tuo account.

   1. Sottoscrive l'argomento del messaggio **topic\$11** e visualizza i messaggi ricevuti su tale argomento.

   1. Pubblica 10 messaggi sull’argomento **topic\$11**.

   1. L'output sia simile a quello riportato di seguito:

   ```
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":1}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":2}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":3}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":4}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":5}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":6}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":7}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":8}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":9}
   Publish received on topic topic_1
   {"message":"Hello world!","sequence":10}
   ```

   In caso di problemi nell'esecuzione dell'app di esempio, consulta [Risolvi i problemi con l'applicazione di esempio](gs-device-troubleshoot.md).

   È inoltre possibile aggiungere il parametro `--verbosity Debug` alla riga di comando in modo che l'app di esempio visualizzi messaggi dettagliati su ciò che sta facendo. Tali informazioni potrebbero fornirti l'aiuto necessario per risolvere il problema.

------

## Visualizza i messaggi dell'app di esempio nella AWS IoT console
<a name="gs-device-view-msg"></a>

È possibile visualizzare i messaggi dell'app di esempio durante il passaggio attraverso il broker di messaggi utilizzando il **client di test MQTT** nella **console AWS IoT **.

**Per visualizzare i messaggi MQTT pubblicati dall'app di esempio**

1. Verificare [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md). In questo modo si impara come utilizzare il **client di test MQTT** nella **console AWS IoT ** per visualizzare i messaggi MQTT durante il passaggio attraverso il broker di messaggi.

1. Apri il **client di test MQTT** nella **console AWS IoT **.

1. Effettua la sottoscrizione all'argomento **topic\$11**.

1. Nella finestra a riga di comando, esegui di nuovo l'app di esempio e guarda i messaggi nel **Client MQTT** nella **console AWS IoT **.

------
#### [ Python ]

   ```
   cd ~/aws-iot-device-sdk-python-v2/samples
   python3 pubsub.py --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------
#### [ JavaScript ]

   ```
   cd ~/aws-iot-device-sdk-js-v2/samples/node/pub_sub
   node dist/index.js --topic topic_1 --ca_file ~/certs/Amazon-root-CA-1.pem --cert ~/certs/device.pem.crt --key ~/certs/private.pem.key --endpoint your-iot-endpoint
   ```

------

# Risolvi i problemi con l'applicazione di esempio
<a name="gs-device-troubleshoot"></a>

Se si verifica un errore quando tenti di eseguire l'app di esempio, ecco alcune cose da verificare.

## Controlla il certificato
<a name="gs-device-ts-step-1"></a>

Se il certificato non è attivo, non AWS IoT accetterà alcun tentativo di connessione che lo utilizzi per l'autorizzazione. Quando crei il tuo certificato, potrebbe capitarti di trascurare il bottone **Activate (Attiva)**. Fortunatamente, puoi attivare il certificato dalla [console AWS IoT](https://console.aws.amazon.com/iot/home).

**Per controllare l'attivazione del certificato**

1. Nella [console AWS IoT](https://console.aws.amazon.com/iot/home), nel menu a sinistra, seleziona **Secure (Sicurezza)**, quindi scegli **Certificates (Certificati)**.

1. Nell'elenco dei certificati, individua il certificato creato per l'esercizio e verificane lo stato nella colonna **Status (Stato)**.

   Se non ti ricordi il nome del certificato, verifica se sono presenti **Inactive (Inattivo)** per vedere se potrebbero essere quelli che stai usando.

   Scegli il certificato nell'elenco per aprire la relativa pagina dei dettagli. Nella pagina dettagli, puoi vedere la **Create date (Creare data)** per informazioni sull'identificazione del certificato.

1. **Per attivare un certificato inattivo** nella pagina dei dettagli del certificato, seleziona **Actions (Operazioni)** e poi **Activate (Attiva)**. 

Se hai trovato il certificato corretto e il relativo certificato è attivo, ma si verificano ancora problemi nell'esecuzione dell'app di esempio, verifica la sua policy come descritto nel passaggio successivo.

È inoltre possibile provare a creare un nuovo oggetto e un nuovo certificato seguendo la procedura descritta in [Crea un oggetto](create-iot-resources.md#create-aws-thing). Se crei un nuovo oggetto, dovrai assegnarli un nuovo nome e scaricare i nuovi file del certificato sul tuo dispositivo.

## Controlla la policy collegata al certificato
<a name="gs-device-ts-step-2"></a>

Le politiche autorizzano le azioni in AWS IoT. Se il certificato utilizzato per la connessione ad AWS IoT non dispone di una policy o non ha una policy che gli consenta di connettersi, la connessione verrà rifiutata, anche se il certificato è attivo.

**Per controllare i criteri collegati a un certificato**

1. Individua il certificato come descritto nell'elemento precedente e apri la relativa pagina dei dettagli.

1. Nel menu a sinistra della pagina dei dettagli del certificato, scegli **Policies** (Policy) per visualizzare le policy collegate al certificato.

1. Se al certificato non sono associate policy, aggiungine una scegliendo il menu **Actions (Operazioni)**, quindi scegli **Attach policy (Collega policy)**. 

   Scegli la policy che hai creato in precedenza in [Crea AWS IoT risorse](create-iot-resources.md).

1. Se è associata una policy, scegli il riquadro policy per aprire la pagina dei dettagli.

   Nella pagina dei dettagli, rivedi **Policy document (Documento di policy)** per assicurarti che contenga le stesse informazioni di quello creato in [Crea una AWS IoT politica](create-iot-resources.md#create-iot-policy).

## Controlla la riga di comando
<a name="gs-device-ts-step-3"></a>

Assicurati di aver usato la riga di comando corretta per il tuo sistema. I comandi utilizzati sui sistemi Linux e macOS sono spesso diversi da quelli utilizzati nei sistemi Windows.

## Controlla l'indirizzo dell'endpoint
<a name="gs-device-ts-step-4"></a>

Esamina il comando immesso e ricontrolla l'indirizzo dell'endpoint nel comando con quello nella [console AWS IoT](https://console.aws.amazon.com/iot/home).

## Controlla i nomi dei file del certificato
<a name="gs-device-ts-step-5"></a>

Confronta i nomi dei file nel comando inserito con i nomi dei file dei certificati nella directory `certs`.

Alcuni sistemi potrebbero richiedere che i nomi dei file siano tra virgolette per funzionare correttamente.

## Controlla l'installazione dell'SDK
<a name="gs-device-ts-step-6"></a>

Assicurati che l'installazione dell'SDK sia completa e corretta.

In caso di dubbio, reinstalla l'SDK sul dispositivo. Nella maggior parte dei casi, è sufficiente trovare la sezione del tutorial intitolata **Installa l'SDK del AWS IoT dispositivo **SDK language** e seguire nuovamente** la procedura.

Se utilizzi **AWS IoT Device SDK per JavaScript**, ricordati di installare le app di esempio prima di provare a eseguirle. L'installazione dell'SDK non installa automaticamente le app di esempio. Le app di esempio devono essere installate manualmente dopo l'installazione dell'SDK.

# Visualizza i messaggi MQTT con il AWS IoT client MQTT
<a name="view-mqtt-messages"></a>

Questa sezione descrive come utilizzare il client di test AWS IoT MQTT nella [AWS IoT console](https://console.aws.amazon.com/iot/home) per guardare i messaggi MQTT inviati e ricevuti da. AWS IoT L'esempio utilizzato in questa sezione si riferisce agli esempi utilizzati in[Guida introduttiva ai AWS IoT Core tutorial](iot-gs.md); tuttavia, è possibile sostituire quello *topicName* utilizzato negli esempi con qualsiasi [nome di argomento o filtro di argomento](topics.md) utilizzato dalla soluzione IoT.

I dispositivi pubblicano messaggi MQTT identificati da [argomenti](topics.md) a cui comunicare il loro stato e AWS IoT pubblicano messaggi MQTT per informare i dispositivi e le app di modifiche ed eventi. AWS IoTÈ possibile utilizzare il client MQTT per sottoscrivere questi argomenti e controllare i messaggi mentre si verificano. È inoltre possibile utilizzare il client di test MQTT per pubblicare messaggi MQTT su dispositivi e servizi sottoscritti nel proprio. Account AWS

**Topics**
+ [Visualizzazione dei messaggi MQTT nel client MQTT](#view-mqtt-subscribe)
+ [Pubblicazione di messaggi MQTT dal client MQTT](#view-mqtt-publish)
+ [Test delle sottoscrizioni condivise nel client MQTT](#view-mqtt-shared-subscriptions)

## Visualizzazione dei messaggi MQTT nel client MQTT
<a name="view-mqtt-subscribe"></a>

[La procedura seguente spiega come sottoscrivere un argomento MQTT specifico su cui il dispositivo pubblica messaggi e come visualizzarli nella console.AWS IoT](https://console.aws.amazon.com/iot/home)

**Per visualizzare i messaggi MQTT nel client di test MQTT**

1. Nella [console AWS IoT](https://console.aws.amazon.com/iot/home) e, nel menu a sinistra, scegli **Test** quindi scegli **MQTT test client (Client MQTT di test)**.  
![\[Scegliete MQTT test client dal menu della console nella barra di navigazione a sinistra.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/choose-test.png)

1. Nella scheda **Sottoscrivi a un argomento**, inserisci *topicName* per iscriverti all'argomento su cui viene pubblicato il tuo dispositivo. Per l'app di esempio introduttiva, effettua la sottoscrizione a **\$1**, che sottoscrive tutti gli argomenti dei messaggi.

   Continuando con l'esempio introduttivo, nella scheda **Subscribe to a topic (Sottoscrizione a un argomento)**, nel campo **Topic filter (Filtro di argomenti)**, immetti **\$1**, quindi scegli **Subscribe (Sottoscrizione)**.  
![\[La scheda Iscriviti a un argomento.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/subscribe-button-topic.png)

   La pagina di log dei messaggi dell'argomento **\$1** si apre e **\$1** viene visualizzato nell'elenco **Subscriptions (Abbonamenti)**. Se il dispositivo in cui hai [Configurazione del dispositivo](configure-device.md) configurato esegue il programma di esempio, dovresti vedere i messaggi a cui invia i messaggi AWS IoT nel registro **\$1**. Le voci del registro dei messaggi verranno visualizzate sotto la sezione **Pubblica** quando i messaggi con l'argomento sottoscritto vengono ricevuti da AWS IoT.  
![\[La sezione per mostrare l'argomento è stata sottoscritta con successo.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/subscribed-button-topic.png)

1. Sulla pagina log dei messaggi **\$1**, puoi pubblicare messaggi in un argomento, ma sarà necessario specificare il nome dell'argomento. Non è possibile pubblicare nell'argomento **\$1**.

   I messaggi pubblicati per gli argomenti sottoscritti vengono visualizzati nel registro messaggi quando vengono ricevuti, con il messaggio più recente all'inizio.

### Risoluzione dei problemi relativi ai messaggi MQTT
<a name="view-mqtt-trouble"></a>

**Usa il filtro per argomenti jolly**  
Se i messaggi non vengono visualizzati come previsto, prova a sottoscrivere un argomento con caratteri jolly come descritto in [Filtri per i nomi degli argomenti](topics.md#topicfilters). Il filtro argomento jolly multi-livello MQTT è il segno hash o cancelletto ( `#` ) e può essere utilizzato come filtro per argomenti nel campo **Subscription topic (Argomento sottoscrizione)**.

Sottoscrizione alla filtro argomenti `#` sottoscrive ogni argomento ricevuto dal broker di messaggi. È possibile restringere il filtro sostituendo gli elementi del percorso del filtro dell'argomento con un carattere jolly a più livelli `#` o il carattere jolly a livello singolo '\$1'.

**Quando utilizzare i caratteri jolly in un filtro argomento**
+ Il carattere jolly multilivello deve essere l'ultimo carattere nel filtro argomento.
+ Il percorso del filtro argomento può avere un solo carattere jolly a livello singolo per livello di argomento.

Ad esempio:


|  Filtro di argomenti  |  Visualizza i messaggi con  | 
| --- | --- | 
|   `#`   |   Nome di qualsiasi argomento   | 
|   `topic_1/#`   |   Un nome di argomento che inizia con `topic_1/`  | 
|   `topic_1/level_2/#`   |   Un nome di argomento che inizia con `topic_1/level_2/`  | 
|   `topic_1/+/level_3`   |   Un nome di argomento che inizia con `topic_1/`, termina con `/level_3` e ha un elemento di qualsiasi valore in mezzo.  | 

Per ulteriori informazioni sui filtri argomento, consulta [Filtri per i nomi degli argomenti](topics.md#topicfilters).

**Controlla la presenza di errori di nome dell'argomento**  
I nomi degli argomenti e i filtri degli argomenti MQTT distinguono tra maiuscole e minuscole. Ad esempio, se il dispositivo pubblica messaggi su `Topic_1` (con la lettera maiuscola *T*) invece di `topic_1`, l'argomento a cui hai effettuato la sottoscrizione e i relativi messaggi non verranno visualizzato nel client di test MQTT. La sottoscrizione filtro di argomento del carattere jolly, tuttavia, mostrerebbe che il dispositivo sta pubblicando messaggi e si potrebbe vedere che utilizzava un nome di argomento che non era quello che ti aspettavi.

## Pubblicazione di messaggi MQTT dal client MQTT
<a name="view-mqtt-publish"></a>

**Per pubblicare un messaggio in un argomento MQTT**

1. Nella pagina del client di test MQTT, nella scheda **Pubblica su un** **argomento, nel campo Nome argomento**, inserisci il *topicName* messaggio. Per questo esempio, utilizzare **my/topic**. 
**Nota**  
Non utilizzare informazioni di identificazione personale nei nomi degli argomenti, a prescindere che vengano utilizzati nel client di test MQTT o nell'implementazione del sistema. I nomi dell'argomento possono essere visualizzati nelle comunicazioni e nei report non crittografati.

1. Nella finestra relativa al payload del messaggio digita il codice JSON seguente:

   ```
   {
       "message": "Hello, world",
       "clientType": "MQTT test client"
   }
   ```

1. Scegli **Publish (Pubblica)** per pubblicare il messaggio in AWS IoT.
**Nota**  
Assicurati di essere iscritto a **my/topic** prima di pubblicare il messaggio.  
![\[La scheda Pubblica su un argomento.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/publish-to-topic.png)

1. Scegli **my/topic** nell'elenco **Subscription (Sottoscrizione)** per visualizzare il messaggio. Il messaggio deve essere visualizzato nel client di test MQTT sotto la finestra di payload del messaggio di pubblicazione.  
![\[La schermata che mostra l'argomento pubblicato è stata ricevuta.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/publish-to-topic-received.png)

È possibile pubblicare messaggi MQTT su altri argomenti modificando il *topicName* campo **Nome argomento** e scegliendo il pulsante **Pubblica**.

**Importante**  
Quando crei più abbonamenti con argomenti sovrapposti (ad esempio, sonda1/temperatura e sonda1/\$1), è possibile che un singolo messaggio pubblicato su un argomento che corrisponde a entrambi gli abbonamenti venga recapitato più volte, una volta per ogni abbonamento sovrapposto. 

## Test delle sottoscrizioni condivise nel client MQTT
<a name="view-mqtt-shared-subscriptions"></a>

Questa sezione descrive come utilizzare il client AWS IoT MQTT nella [AWS IoT console](https://console.aws.amazon.com/iot/home) per guardare i messaggi MQTT inviati e ricevuti AWS IoT utilizzando sottoscrizioni condivise. [Abbonamenti condivisi](mqtt.md#mqtt5-shared-subscription)consente a più client di condividere un abbonamento a un argomento con un solo client che riceve i messaggi pubblicati su quell'argomento utilizzando una distribuzione casuale. Per simulare più client MQTT (in questo esempio, due client MQTT) che condividono lo stesso abbonamento, aprite il client AWS IoT MQTT nella [AWS IoT console](https://console.aws.amazon.com/iot/home) da più browser Web. L'esempio utilizzato in questa sezione non fa riferimento agli esempi utilizzati in [Guida introduttiva ai AWS IoT Core tutorial](iot-gs.md). Per ulteriori informazioni, consultare [Sottoscrizioni condivise](mqtt.md#mqtt5-shared-subscription).

**Per condividere una sottoscrizione a un argomento MQTT**

1. Nella [Console AWS IoT](https://console.aws.amazon.com/iot/home), nel pannello di navigazione, scegli **Test**, quindi seleziona **Client MQTT di test**.

1. Nella scheda **Sottoscrivi a un argomento**, inserisci *topicName* per iscriverti all'argomento su cui viene pubblicato il tuo dispositivo. Per utilizzare sottoscrizioni condivise, effettua la sottoscrizione al filtro di argomenti di una sottoscrizione condivisa come illustrato di seguito:

   ```
   $share/{ShareName}/{TopicFilter}
   ```

   Un filtro di argomenti di esempio può essere **\$1share/group1/topic1**, che effettua la sottoscrizione all'argomento del messaggio **topic1**.  
![\[La scheda che mostra come specificare un filtro per argomenti per le sottoscrizioni condivise.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/shared-subscription-topicfilter.png)

1. Apri un altro browser Web e ripeti i passaggi 1 e 2. Questa procedura simula due diversi client MQTT che condividono la stessa sottoscrizione **\$1share/group1/topic1**.

1. Scegli un client MQTT, nella scheda **Pubblica su un argomento**, nel campo **Nome argomento**, inserisci il *topicName* messaggio. Per questo esempio, utilizzare **topic1**. Prova a pubblicare il messaggio alcune volte. Dall'elenco **Sottoscrizioni** di entrambi i client MQTT, devi essere in grado di vedere che i client ricevono il messaggio utilizzando una distribuzione casuale. In questo esempio, lo stesso messaggio "Hello from AWS IoT console" viene pubblicato tre volte. Il client MQTT a sinistra ha ricevuto il messaggio due volte e il client MQTT a destra ha ricevuto il messaggio una volta.  
![\[Le sottoscrizioni condivise vengono condivise con due client per condividere una sottoscrizione a un argomento e solo un client riceverà i messaggi pubblicati su quell'argomento utilizzando una distribuzione casuale.\]](http://docs.aws.amazon.com/it_it/iot/latest/developerguide/images/shared_subscriptions_test.gif)