

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

# Fase 4: Implementazione e test del componente su un dispositivo principale
<a name="deploy-component-defer-updates"></a>

In questa sezione, distribuisci il componente sul dispositivo principale per testarne la funzionalità. Sul dispositivo principale, crei il file virtuale del livello della batteria per imitare una batteria reale. Quindi, crei distribuzioni aggiuntive e osservi i file di registro dei componenti sul dispositivo principale per verificare che il componente rinvii e confermi gli aggiornamenti.

**Per distribuire e testare il componente Hello World che posticipa gli aggiornamenti**

1. Usa un editor di testo per creare un file virtuale del livello della batteria. Questo file imita una batteria reale.
   + Sui dispositivi principali Linux, crea un file denominato`/home/ggc_user/virtual_battery.json`. Esegui l'editor di testo con `sudo` autorizzazioni.
   + Sui dispositivi Windows principali, crea un file denominato`C:\Users\ggc_user\virtual_battery.json`. Esegui l'editor di testo come amministratore.

   <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

   ```
   sudo nano /home/ggc_user/virtual_battery.json
   ```

   Copiate il seguente codice JSON nel file.

   ```
   {
     "battery_level": 50
   }
   ```

1. Distribuisci il componente Hello World sul dispositivo principale. Esegui questa operazione:

   1. Nel menu di navigazione [AWS IoT Greengrass della console](https://console.aws.amazon.com/greengrass), scegli **Componenti**.

   1. Nella pagina **Componenti**, scegli la scheda **I miei componenti**, quindi scegli **com.example.BatteryAwareHelloWorld**.

   1. Nella pagina **com.example.BatteryAwareHelloWorld**, scegli **(Distribuisci)**.

   1. <a name="deploy-component-choose-deployment-step"></a>Da **Aggiungi alla distribuzione**, scegli una distribuzione esistente da modificare oppure scegli di creare una nuova distribuzione, quindi scegli **Avanti**.

   1. <a name="deploy-component-choose-target-step"></a>Se hai scelto di creare una nuova distribuzione, scegli il dispositivo principale o il gruppo di oggetti di destinazione per la distribuzione. Nella pagina **Specificare la destinazione**, in **Obiettivo di distribuzione**, scegli un dispositivo principale o un gruppo di oggetti, quindi scegli **Avanti**.

   1. Nella pagina **Seleziona componenti**, verifica che il **com.example.BatteryAwareHelloWorld**componente sia selezionato, scegli **Avanti**.

   1. Nella pagina **Configura componenti **com.example.BatteryAwareHelloWorld****, selezionate e quindi effettuate le seguenti operazioni:

      1. Scegli **Configura componente**.

      1. Nella com.example.BatteryAwareHelloWorld modalità **Configura**, in **Aggiornamento della configurazione**, in **Configurazione da unire**, inserisci il seguente aggiornamento di configurazione.

         ```
         {
           "BatteryThreshold": 70
         }
         ```

      1. **Scegli **Conferma** per chiudere la modalità, quindi scegli Avanti.**

   1. Nella pagina **Conferma impostazioni avanzate**, nella sezione **Criteri di distribuzione**, in **Politica di aggiornamento dei componenti**, conferma che sia selezionata l'opzione **Notifica componenti**. L'opzione **Notifica componenti** è selezionata per impostazione predefinita quando si crea una nuova distribuzione.

   1. <a name="deploy-component-review-and-deploy-step"></a>Nella pagina **Review (Verifica)**, scegli **Deploy (Distribuisci)**.

      Il completamento della distribuzione può richiedere fino a un minuto.

1. Il software AWS IoT Greengrass Core salva lo stdout dai processi dei componenti nei file di registro nella `logs` cartella. Eseguite il comando seguente per verificare che il componente Hello World venga eseguito e stampi i messaggi di stato.

------
#### [ Linux or Unix ]

   ```
   sudo tail -f {{/greengrass/v2}}/logs/com.example.BatteryAwareHelloWorld.log
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   type {{C:\greengrass\v2}}\logs\com.example.BatteryAwareHelloWorld.log
   ```

------
#### [ PowerShell ]

   ```
   gc {{C:\greengrass\v2}}\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait
   ```

------

   Dovreste vedere messaggi simili a quelli dell'esempio seguente.

   ```
   Hello, World! Battery level (50) is below threshold (70), so the component will defer updates.
   ```
**Nota**  
Se il file non esiste, la distribuzione potrebbe non essere ancora completa. Se il file non esiste entro 30 secondi, è probabile che la distribuzione non sia riuscita. Ciò può verificarsi, ad esempio, se il dispositivo principale non è autorizzato a scaricare gli elementi del componente dal bucket S3. Esegui il comando seguente per visualizzare il file di registro del software AWS IoT Greengrass Core. Questo file include i log del servizio di distribuzione del dispositivo principale Greengrass.  

   ```
   sudo tail -f {{/greengrass/v2}}/logs/greengrass.log
   ```

   ```
   type {{C:\greengrass\v2}}\logs\greengrass.log
   ```
<a name="windows-cmd-type-observe-logs"></a>Il `type` comando scrive il contenuto del file nel terminale. Esegui questo comando più volte per osservare le modifiche nel file.

   ```
   gc {{C:\greengrass\v2}}\logs\greengrass.log -Tail 10 -Wait
   ```

1. Crea una nuova distribuzione sul dispositivo principale per verificare che il componente rinvii l'aggiornamento. Esegui questa operazione:

   1. Nel menu di navigazione [AWS IoT Greengrass della console](https://console.aws.amazon.com/greengrass), scegli **Distribuzioni**.

   1. Scegli la distribuzione che hai creato o modificato in precedenza.

   1. Nella pagina di distribuzione, scegli **Rivedi**.

   1. **Nella modalità **Revise deployment**, scegli Revise deployment.**

   1. **Scegli **Avanti** in ogni passaggio, quindi scegli Distribuisci.**

1. Esegui il comando seguente per visualizzare nuovamente i log del componente e verifica che posticipi l'aggiornamento.

------
#### [ Linux or Unix ]

   ```
   sudo tail -f {{/greengrass/v2}}/logs/com.example.BatteryAwareHelloWorld.log
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   type {{C:\greengrass\v2}}\logs\com.example.BatteryAwareHelloWorld.log
   ```

------
#### [ PowerShell ]

   ```
   gc {{C:\greengrass\v2}}\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait
   ```

------

   Dovrebbero comparire messaggi simili a quelli dell'esempio seguente. Il componente posticipa l'aggiornamento di 30 secondi, quindi stampa ripetutamente questo messaggio.

   ```
   Deferred update for deployment 50722a95-a05f-4e2a-9414-da80103269aa.
   ```

1. Utilizza un editor di testo per modificare il file virtuale del livello della batteria e imposta il livello della batteria a un valore superiore alla soglia, in modo che l'installazione possa procedere.
   + Sui dispositivi principali Linux, modifica il file denominato`/home/ggc_user/virtual_battery.json`. Esegui l'editor di testo con `sudo` le autorizzazioni.
   + Sui dispositivi Windows Core, modifica il file denominato`C:\Users\ggc_user\virtual_battery.json`. Esegui l'editor di testo come amministratore.

   <a name="nano-command-intro"></a>Ad esempio, su un sistema basato su Linux, è possibile eseguire il comando seguente per utilizzare GNU nano per creare il file.

   ```
   sudo nano /home/ggc_user/virtual_battery.json
   ```

   Cambia il livello della batteria in. `80`

   ```
   {
     "battery_level": 80
   }
   ```

1. Esegui il comando seguente per visualizzare nuovamente i log del componente e verifica che riconosca l'aggiornamento.

------
#### [ Linux or Unix ]

   ```
   sudo tail -f {{/greengrass/v2}}/logs/com.example.BatteryAwareHelloWorld.log
   ```

------
#### [ Windows Command Prompt (CMD) ]

   ```
   type {{C:\greengrass\v2}}\logs\com.example.BatteryAwareHelloWorld.log
   ```

------
#### [ PowerShell ]

   ```
   gc {{C:\greengrass\v2}}\logs\com.example.BatteryAwareHelloWorld.log -Tail 10 -Wait
   ```

------

   Dovreste vedere messaggi simili ai seguenti esempi.

   ```
   Hello, World! Battery level (80) is above threshold (70), so the component will acknowledge updates.
   Acknowledged update for deployment f9499eb2-4a40-40a7-86c1-c89887d859f1.
   ```