

Avviso di fine del supporto: il 7 ottobre 2026, AWS interromperà il supporto per. AWS IoT Greengrass Version 1 Dopo il 7 ottobre 2026, non potrai più accedere alle risorse. AWS IoT Greengrass V1 Per ulteriori informazioni, visita [ Migrate from. AWS IoT Greengrass Version 1](https://docs.aws.amazon.com/greengrass/v2/developerguide/migrate-from-v1.html)

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

# Nozioni di base sui connettori Greengrass (CLI)
<a name="connectors-cli"></a>

Questa funzionalità è disponibile per AWS IoT Greengrass Core v1.7 e versioni successive.

Questo tutorial mostra come utilizzare i connettori AWS CLI per lavorare con i connettori.

Utilizza i connettori per accelerare il ciclo di vita dello sviluppo. I connettori sono moduli precostituiti e riutilizzabili che semplificano l'interazione con servizi, protocolli e risorse. Possono aiutarti a distribuire più rapidamente la logica di business ai dispositivi Greengrass. Per ulteriori informazioni, consulta [Integrazione con servizi e protocolli tramite i connettori Greengrass](connectors.md).

In questo tutorial, configuri e distribuisci il connettore [ Twilio Notifications](twilio-notifications-connector.md). Il connettore riceve le informazioni sui messaggi Twilio come dati di input, quindi attiva un messaggio di testo Twilio. Il flusso di dati viene mostrato nel seguente schema.

![Flusso di dati dalla funzione Lambda al connettore Twilio Notifications a Twilio.](https://docs.aws.amazon.com/it_it/greengrass/v1/developerguide/images/connectors/twilio-solution.png)


Dopo aver configurato il connettore, crei una funzione Lambda e un abbonamento.
+ La funzione valuta i dati simulati da un sensore di temperatura. Pubblica in base a condizioni le informazioni sul messaggio Twilio in un argomento MQTT. Questo è l'argomento a cui il connettore effettua la sottoscrizione.
+ La sottoscrizione consente alla funzione di effettuare la pubblicazione nell'argomento e al connettore di ricevere i dati dall'argomento.

Il connettore Twilio Notifications richiede un token di autenticazione Twilio per interagire con l'API Twilio. Il token è un segreto di tipo testo creato AWS Secrets Manager e referenziato da una risorsa di gruppo. Ciò consente AWS IoT Greengrass di creare una copia locale del segreto sul core di Greengrass, dove viene crittografato e reso disponibile al connettore. Per ulteriori informazioni, consulta [Distribuisci i segreti al AWS IoT Greengrass core](secrets.md).

Il tutorial include le seguenti fasi di alto livello:

1. [Crea un segreto per Secrets Manager](#connectors-cli-create-secret)

1. [Creazione della versione e della definizione della risorsa](#connectors-cli-create-resource-definition)

1. [Creazione della versione e della definizione del connettore](#connectors-cli-create-connector-definition)

1. [Crea un pacchetto di distribuzione delle funzioni Lambda](#connectors-cli-create-deployment-package)

1. [Creazione di una funzione Lambda ](#connectors-cli-create-function)

1. [Creazione della versione e della definizione della funzione](#connectors-cli-create-function-definition)

1. [Creazione della versione e della definizione dell'abbonamento](#connectors-cli-create-subscription-definition)

1. [Creazione di una versione del gruppo](#connectors-cli-create-group-version)

1. [Crea distribuzione](#connectors-cli-create-deployment)

1. [Test della soluzione](#connectors-cli-test-solution)

Il completamento di questo tutorial richiede circa 30 minuti.

**Utilizzo dell'API AWS IoT Greengrass **

È utile comprendere i seguenti schemi quando lavori con i gruppi Greengrass e i componenti dei gruppi (ad esempio connettori, funzioni e risorse del gruppo).
+ In alto nella gerarchia, un componente dispone di un oggetto *definizione*, ovvero un container di oggetti *versione*. Una versione è invece un container dei connettori, delle funzioni o di altri tipi di componenti.
+ Quando effettui una distribuzione nel core Greengrass, distribuisci una specifica versione del gruppo. Una versione del gruppo può contenere una versione di ciascun tipo di componente. È necessario un core, ma gli altri sono inclusi in base alle necessità.
+ Le versioni non possono essere modificate. Pertanto, se desideri apportare modifiche, dovrai crearne di nuove. 

**Suggerimento**  
Se ricevete un errore quando eseguite un AWS CLI comando, aggiungete il `--debug` parametro e rieseguite il comando per ottenere ulteriori informazioni sull'errore.

L' AWS IoT Greengrass API consente di creare più definizioni per un tipo di componente. Ad esempio, puoi creare un oggetto `FunctionDefinition` ogni volta che crei una `FunctionDefinitionVersion` oppure puoi aggiungere nuove versioni a una definizione esistente. Questa flessibilità ti consente di personalizzare il sistema di gestione delle versioni.

## Prerequisiti
<a name="connectors-cli-prerequisites"></a>

Per completare questo tutorial, è necessario quanto segue:
+ Un gruppo Greengrass e un core Greengrass (v1.9.3 or later). Per informazioni su come creare un gruppo e un core Greengrass, consulta [Nozioni di base su AWS IoT Greengrass](gg-gs.md). Nel tutorial Nozioni di base sono descritte anche le fasi per l'installazione del software AWS IoT Greengrass Core.
+ Python 3.7 installato sul dispositivo AWS IoT Greengrass principale.
+  AWS IoT Greengrass deve essere configurato per supportare i segreti locali, come descritto in [ Secrets ](secrets.md#secrets-reqs) Requirements.
**Nota**  
Questo requisito include l'autorizzazione all'accesso ai tuoi segreti di Secrets Manager. Se utilizzate il ruolo di servizio predefinito di Greengrass, Greengrass è autorizzato a ottenere i valori dei segreti i cui nomi iniziano con * greengrass-. *
+ SID, token di autenticazione e numero di telefono dell'account Twilio. Twilio-enabled Dopo avere creato un progetto Twilio, questi valori sono disponibili nel pannello di controllo del progetto.
**Nota**  
Puoi utilizzare un account di prova Twilio. Se utilizzi un account di prova, devi aggiungere i numeri di telefono dei destinatari non Twilio a un elenco di numeri di telefono verificati. Per ulteriori informazioni, consulta [ Come lavorare con il tuo account di prova gratuito di Twilio. ](https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account)
+ AWS CLI installato e configurato sul tuo computer. Per ulteriori informazioni, vedere [[ Installazione AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html) e configurazione di AWS CLI](https://docs.aws.amazon.com/cli/latest/userguide/installing.html) nella Guida * per l'*AWS Command Line Interface utente.

   

  Gli esempi di questo tutorial sono scritti per Linux e altri Unix-based sistemi. Se usi Windows, vedi [ Specificare i valori dei parametri per AWS Command Line Interface](https://docs.aws.amazon.com/cli/latest/userguide/cli-using-param.html) conoscere le differenze di sintassi.

  Se il comando include una stringa JSON, il tutorial fornisce un esempio che ha JSON in un'unica riga. In alcuni sistemi, potrebbe essere più semplice modificare ed eseguire comandi utilizzando questo formato.

## Fase 1: Creare un segreto per Secrets Manager
<a name="connectors-cli-create-secret"></a>

In questo passaggio, utilizzi l' AWS Secrets Manager API per creare un segreto per il tuo token di autenticazione Twilio.

1. È necessario creare innanzitutto il segreto.
   + Sostituiscilo {{twilio-auth-token}} con il tuo token di autenticazione Twilio.

   ```
   aws secretsmanager create-secret --name greengrass-TwilioAuthToken --secret-string {{twilio-auth-token}}
   ```
**Nota**  
Per impostazione predefinita, il ruolo del servizio Greengrass consente di AWS IoT Greengrass ottenere il valore dei segreti i cui nomi iniziano con * greengrass-. * Per ulteriori informazioni, consulta [Requisiti dei segreti](secrets.md#secrets-reqs).

1. Copiare l'`ARN` del segreto dall'output. Lo usi per creare la risorsa segreta e configurare il connettore Twilio Notifications.

## Fase 2: creazione della versione e della definizione della risorsa
<a name="connectors-cli-create-resource-definition"></a>

In questo passaggio, utilizzi l' AWS IoT Greengrass API per creare una risorsa segreta per il tuo segreto di Secrets Manager.

1. Creare una definizione di risorsa che includa una versione iniziale.
   + Sostituiscila {{secret-arn}} con quella `ARN` del segreto che hai copiato nel passaggio precedente.

    

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

   ```
   aws greengrass create-resource-definition --name MyGreengrassResources --initial-version '{
       "Resources": [
           {
               "Id": "TwilioAuthToken",
               "Name": "MyTwilioAuthToken",
               "ResourceDataContainer": {
                   "SecretsManagerSecretResourceData": {
                       "ARN": "{{secret-arn}}"
                   }
               }
           }
       ]
   }'
   ```

------
#### [ JSON Single-line ]

   ```
   aws greengrass create-resource-definition \
   --name MyGreengrassResources \
   --initial-version '{"Resources": [{"Id": "TwilioAuthToken", "Name": "MyTwilioAuthToken", "ResourceDataContainer": {"SecretsManagerSecretResourceData": {"ARN": "{{secret-arn}}"}}}]}'
   ```

------

1. Copiare la `LatestVersionArn` della definizione di risorsa dall'output. È possibile utilizzare questo valore per aggiungere la definizione di risorsa alla versione del gruppo distribuita nel core.

## Fase 3: creazione della versione e della definizione del connettore
<a name="connectors-cli-create-connector-definition"></a>

In questo passaggio, si configurano i parametri per il connettore Twilio Notifications.

1. Creare una definizione del connettore con una versione iniziale.
   + Sostituiscilo {{account-sid}} con il SID del tuo account Twilio.
   + Sostituiscilo {{secret-arn}} con il segreto `ARN` del tuo Secrets Manager. Il connettore lo utilizzerà per ottenere il valore del segreto locale.
   + Sostituiscilo {{phone-number}} con il tuo numero di Twilio-enabled telefono. Twilio lo utilizza per iniziare il messaggio di testo. Questo può essere sostituito nel payload del messaggio di input. Utilizza il seguente formato: `+19999999999`.

    

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

   ```
   aws greengrass create-connector-definition --name MyGreengrassConnectors --initial-version '{
       "Connectors": [
           {
               "Id": "MyTwilioNotificationsConnector",
               "ConnectorArn": "arn:aws:greengrass:{{region}}::/connectors/TwilioNotifications/versions/4",
               "Parameters": {
                   "TWILIO_ACCOUNT_SID": "{{account-sid}}",
                   "TwilioAuthTokenSecretArn": "{{secret-arn}}",
                   "TwilioAuthTokenSecretArn-ResourceId": "TwilioAuthToken",
                   "DefaultFromPhoneNumber": "{{phone-number}}"
               }
           }
       ]
   }'
   ```

------
#### [ JSON Single-line ]

   ```
   aws greengrass create-connector-definition \
   --name MyGreengrassConnectors \
   --initial-version '{"Connectors": [{"Id": "MyTwilioNotificationsConnector", "ConnectorArn": "arn:aws:greengrass:{{region}}::/connectors/TwilioNotifications/versions/4", "Parameters": {"TWILIO_ACCOUNT_SID": "{{account-sid}}", "TwilioAuthTokenSecretArn": "{{secret-arn}}", "TwilioAuthTokenSecretArn-ResourceId": "TwilioAuthToken", "DefaultFromPhoneNumber": "{{phone-number}}"}}]}'
   ```

------
**Nota**  
`TwilioAuthToken` è l'ID utilizzato nella fase precedente per creare la risorsa segreta.

1. Copiare il `LatestVersionArn` della definizione del connettore dall'output. È possibile utilizzare questo valore per aggiungere la definizione del connettore alla versione del gruppo distribuita nel core.

## Passaggio 4: creare un pacchetto di distribuzione delle funzioni Lambda
<a name="connectors-cli-create-deployment-package"></a>

Per creare una funzione Lambda, devi prima creare un pacchetto di * distribuzione della funzione Lambda * che contenga il codice della funzione e le dipendenze. Le funzioni Lambda di Greengrass richiedono il [AWS IoT Greengrass Core SDK ](lambda-functions.md#lambda-sdks-core) per attività come la comunicazione con i messaggi MQTT nell'ambiente principale e l'accesso ai segreti locali. Questo tutorial crea una funzione Python, quindi utilizzi la versione Python dell'SDK nel pacchetto di distribuzione.

1. <a name="download-ggc-sdk"></a> Dalla pagina di download del [AWS IoT Greengrass Core SDK, ](what-is-gg.md#gg-core-sdk-download) scarica il AWS IoT Greengrass Core SDK for Python sul tuo computer.

1. <a name="unzip-ggc-sdk"></a>Decomprimere il pacchetto scaricato per ottenere l'SDK. Il kit SDK è la cartella `greengrasssdk`.

1. Salvare la seguente funzione del codice Python nel file locale `temp_monitor.py`.

   ```
   import greengrasssdk
   import json
   import random
   
   client = greengrasssdk.client('iot-data')
   
   # publish to the Twilio Notifications connector through the twilio/txt topic
   def function_handler(event, context):
       temp = event['temperature']
       
       # check the temperature
       # if greater than 30C, send a notification
       if temp > 30:
           data = build_request(event)
           client.publish(topic='twilio/txt', payload=json.dumps(data))
           print('published:' + str(data))
           
       print('temperature:' + str(temp))
       return
   
   # build the Twilio request from the input data
   def build_request(event):
       to_name = event['to_name']
       to_number = event['to_number']
       temp_report = 'temperature:' + str(event['temperature'])
   
       return {
           "request": {
               "recipient": {
                   "name": to_name,
                   "phone_number": to_number,
                   "message": temp_report
               }
           },
           "id": "request_" + str(random.randint(1,101))
       }
   ```

1. Comprimere le voci seguenti nel file `temp_monitor_python.zip`. Al momento della creazione del file ZIP, includere solo il codice e le dipendenze, non la cartella che li contiene.
   + **temp\_monitor.py**. La logica dell'app.
   + **greengrasssdk**. Libreria necessaria per le funzioni Python Greengrass Lambda che pubblicano messaggi MQTT.

   Questo è il pacchetto di distribuzione delle funzioni Lambda.

## Passaggio 5: creare una funzione Lambda
<a name="connectors-cli-create-function"></a>

Ora, crea una funzione Lambda che utilizzi il pacchetto di distribuzione.

1. <a name="cli-create-empty-lambda-role"></a>Crea un ruolo IAM in modo da poter passare il ruolo ARN quando crei la funzione.

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

   ```
   aws iam create-role --role-name Lambda_empty --assume-role-policy '{
       "Version": "2012-10-17",		 	 	 
       "Statement": [
           {
               "Effect": "Allow",
               "Principal": {
                   "Service": "lambda.amazonaws.com"
               },
              "Action": "sts:AssumeRole"
           }
       ]
   }'
   ```

------
#### [ JSON Single-line ]

   ```
   aws iam create-role --role-name Lambda_empty --assume-role-policy '{"Version": "2012-10-17",		 	 	  "Statement": [{"Effect": "Allow", "Principal": {"Service": "lambda.amazonaws.com"},"Action": "sts:AssumeRole"}]}'
   ```

------
**Nota**  
AWS IoT Greengrass non utilizza questo ruolo perché le autorizzazioni per le funzioni Greengrass Lambda sono specificate nel ruolo del gruppo Greengrass. Per questo tutorial, viene creato un ruolo vuoto.

1. <a name="cli-copy-lambda-role-arn"></a>Copia il valore `Arn` dall'output.

1. Usa l' AWS Lambda API per creare la funzione. TempMonitor Il comando seguente presuppone che il file ZIP si trovi nella directory corrente.
   + Sostituisci l’{{role-arn}} con l’`Arn` copiato.

   ```
   aws lambda create-function \
   --function-name TempMonitor \
   --zip-file fileb://temp_monitor_python.zip \
   --role {{role-arn}} \
   --handler temp_monitor.function_handler \
   --runtime python3.7
   ```

1. Pubblicare una versione della funzione.

   ```
   aws lambda publish-version --function-name TempMonitor --description 'First version'
   ```

1. Creare un alias della versione pubblicata.

   I gruppi Greengrass possono fare riferimento a una funzione Lambda tramite alias (consigliato) o per versione. L'uso di un alias semplifica la gestione degli aggiornamenti del codice perché non è necessario modificare la tabella di sottoscrizione o la definizione del gruppo quando il codice della funzione viene aggiornato. Basta invece puntare l'alias alla nuova versione della funzione.
**Nota**  
AWS IoT Greengrass non supporta gli alias Lambda per ** le versioni $LATEST. **

   ```
   aws lambda create-alias --function-name TempMonitor --name GG_TempMonitor --function-version 1
   ```

1. Copia il valore `AliasArn` dall'output. Questo valore viene utilizzato quando si configura la funzione per AWS IoT Greengrass e quando si crea un abbonamento.

Ora sei pronto per configurare la funzione per AWS IoT Greengrass.

## Fase 6: creazione della versione e della definizione della funzione
<a name="connectors-cli-create-function-definition"></a>

Per utilizzare una funzione Lambda su un AWS IoT Greengrass core, crei una versione di definizione della funzione che fa riferimento alla funzione Lambda tramite alias e definisce la configurazione a livello di gruppo. Per ulteriori informazioni, consulta [Controllo dell'esecuzione delle funzioni Greengrass Lambda utilizzando la configurazione specifica del gruppo](lambda-group-config.md).

1. Creare una definizione di funzione che includa una versione iniziale.
   + Sostituisci {{alias-arn}} con `AliasArn` quello che hai copiato quando hai creato l'alias.

    

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

   ```
   aws greengrass create-function-definition --name MyGreengrassFunctions --initial-version '{
       "Functions": [
           {
               "Id": "TempMonitorFunction",
               "FunctionArn": "{{alias-arn}}",
               "FunctionConfiguration": {
                   "Executable": "temp_monitor.function_handler",
                   "MemorySize": 16000,
                   "Timeout": 5
               }
           }
       ]
   }'
   ```

------
#### [ JSON Single-line ]

   ```
   aws greengrass create-function-definition \
   --name MyGreengrassFunctions \
   --initial-version '{"Functions": [{"Id": "TempMonitorFunction", "FunctionArn": "{{alias-arn}}", "FunctionConfiguration": {"Executable": "temp_monitor.function_handler", "MemorySize": 16000,"Timeout": 5}}]}'
   ```

------

1. Copia il valore `LatestVersionArn` dall'output. È possibile utilizzare questo valore per aggiungere la definizione di funzione alla versione del gruppo distribuita nel core.

1. Copia il valore `Id` dall'output. È possibile utilizzare questo valore successivamente, al momento dell'aggiornamento della funzione.

## Fase 7: creazione della versione e della definizione dell'abbonamento
<a name="connectors-cli-create-subscription-definition"></a>

<a name="connectors-how-to-add-subscriptions-p1"></a>In questo passaggio, aggiungi un abbonamento che consente alla funzione Lambda di inviare dati di input al connettore. Il connettore definisce gli argomenti MQTT a cui è sottoscritto. Pertanto, questa sottoscrizione utilizza uno degli argomenti. Si tratta dello argomento in cui la funzione di esempio effettua la pubblicazione.

<a name="connectors-how-to-add-subscriptions-p2"></a>Per questo tutorial, crei anche abbonamenti che consentono alla funzione di ricevere letture simulate della temperatura AWS IoT e di AWS IoT ricevere informazioni sullo stato dal connettore.

1. Creare una definizione di abbonamento che includa una versione iniziale contenente gli abbonamenti.
   + Sostituisci {{alias-arn}} con `AliasArn` quello che hai copiato quando hai creato l'alias per la funzione. Utilizzare questo ARN per entrambi gli abbonamenti.

    

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

   ```
   aws greengrass create-subscription-definition --initial-version '{
       "Subscriptions": [
           {
               "Id": "TriggerNotification",
               "Source": "{{alias-arn}}",
               "Subject": "twilio/txt",
               "Target": "arn:aws:greengrass:{{region}}::/connectors/TwilioNotifications/versions/4"
           },        
           {
               "Id": "TemperatureInput",
               "Source": "cloud",
               "Subject": "temperature/input",
               "Target": "{{alias-arn}}"
           },
           {
               "Id": "OutputStatus",
               "Source": "arn:aws:greengrass:{{region}}::/connectors/TwilioNotifications/versions/4",
               "Subject": "twilio/message/status",
               "Target": "cloud"
           }
       ]
   }'
   ```

------
#### [ JSON Single-line ]

   ```
   aws greengrass create-subscription-definition \
   --initial-version '{"Subscriptions": [{"Id": "TriggerNotification", "Source": "{{alias-arn}}", "Subject": "twilio/txt", "Target": "arn:aws:greengrass:{{region}}::/connectors/TwilioNotifications/versions/4"},{"Id": "TemperatureInput", "Source": "cloud", "Subject": "temperature/input", "Target": "{{alias-arn}}"},{"Id": "OutputStatus", "Source": "arn:aws:greengrass:{{region}}::/connectors/TwilioNotifications/versions/4", "Subject": "twilio/message/status", "Target": "cloud"}]}'
   ```

------

1. Copia il valore `LatestVersionArn` dall'output. È possibile utilizzare questo valore per aggiungere la definizione dell'abbonamento alla versione del gruppo distribuita nel core.

## Fase 8: creazione di una versione del gruppo
<a name="connectors-cli-create-group-version"></a>

A questo punto è possibile creare una versione del gruppo che contenga tutte le voci da distribuire. A questo scopo, è necessario creare una versione di gruppo che faccia riferimento alla versione di destinazione di ciascun tipo di componente.

Ottenere innanzitutto l'ID del gruppo e l'ARN della versione della definizione del core. Questi valori sono necessari per creare la versione del gruppo.

1. Ottenere l'ID del gruppo e la versione gruppo più recente:

   1. <a name="get-group-id-latestversion"></a>Ottieni gli ID del gruppo di destinazione Greengrass e la versione dei gruppi. Questa procedura presuppone che si tratti dell'ultima versione del gruppo e del gruppo. La seguente query restituisce il gruppo creato più di recente.

      ```
      aws greengrass list-groups --query "reverse(sort_by(Groups, &CreationTimestamp))[0]"
      ```

      In alternativa, puoi eseguire query in base al nome. I nomi dei gruppi non devono essere univoci, pertanto potrebbero essere restituiti più gruppi.

      ```
      aws greengrass list-groups --query "Groups[?Name=='{{MyGroup}}']"
      ```
**Nota**  
<a name="find-group-ids-console"></a>Puoi trovare questi valori anche nella AWS IoT console. L'ID gruppo viene visualizzato nella pagina **Settings (Impostazioni)** del gruppo. Gli ID delle versioni del gruppo vengono visualizzati nella ** scheda ** Distribuzioni del gruppo.

   1. <a name="copy-target-group-id"></a>Copiare l'`Id` del gruppo di destinazione dall'output. Questo valore viene utilizzato per ottenere la versione della definizione del core e durante la distribuzione del gruppo.

   1. <a name="copy-latest-group-version-id"></a>Copiare la `LatestVersion` dall'output, che corrisponde all'ID dell'ultima versione aggiunta al gruppo. Questo valore viene utilizzato per ottenere la versione della definizione del core.

1. Per ottenere l'ARN della versione di definizione del core:

   1. Ottenere la versione del gruppo. In questa fase, si presume che la versione del gruppo più recente includa una versione della definizione del core.
      + Sostituiscili {{group-id}} con `Id` quelli che hai copiato per il gruppo.
      + Sostituisci {{group-version-id}} con `LatestVersion` quello che hai copiato per il gruppo.

      ```
      aws greengrass get-group-version \
      --group-id {{group-id}} \
      --group-version-id {{group-version-id}}
      ```

   1. Copia il valore `CoreDefinitionVersionArn` dall'output.

1. Creare una versione del gruppo.
   + Sostituisci {{group-id}} con `Id` quello che hai copiato per il gruppo.
   + Sostituisci {{core-definition-version-arn}} con `CoreDefinitionVersionArn` quello che hai copiato per la versione di definizione principale.
   + Sostituisci {{resource-definition-version-arn}} con `LatestVersionArn` quello che hai copiato per la definizione della risorsa.
   + Sostituisci {{connector-definition-version-arn}} con `LatestVersionArn` quello che hai copiato per la definizione del connettore.
   + Sostituisci {{function-definition-version-arn}} con `LatestVersionArn` quello che hai copiato per la definizione della funzione.
   + Sostituisci {{subscription-definition-version-arn}} con `LatestVersionArn` quello che hai copiato per la definizione dell'abbonamento.

   ```
   aws greengrass create-group-version \
   --group-id {{group-id}} \
   --core-definition-version-arn {{core-definition-version-arn}} \
   --resource-definition-version-arn {{resource-definition-version-arn}} \
   --connector-definition-version-arn {{connector-definition-version-arn}} \
   --function-definition-version-arn {{function-definition-version-arn}} \
   --subscription-definition-version-arn {{subscription-definition-version-arn}}
   ```

1. Copia il valore di `Version` dall'output. Questo è l'ID della versione del gruppo. È possibile utilizzare questo valore per distribuire la versione del gruppo.

## Fase 9: creazione di una distribuzione
<a name="connectors-cli-create-deployment"></a>

Distribuire il gruppo al nuovo dispositivo core.

1. <a name="check-gg-daemon-is-running"></a>In un terminale principale del dispositivo, assicuratevi che il AWS IoT Greengrass daemon sia in esecuzione.

   1. Per controllare se il daemon è in esecuzione:

      ```
      ps aux | grep -E 'greengrass.*daemon'
      ```

      Se l'output contiene una voce `root` per `/greengrass/ggc/packages/1.11.6/bin/daemon`, allora il daemon è in esecuzione.

   1. Per avviare il demone:

      ```
      cd /greengrass/ggc/core/
      sudo ./greengrassd start
      ```

1. <a name="create-deployment"></a>Crea una implementazione .
   + Sostituiscilo {{group-id}} con `Id` quello che hai copiato per il gruppo.
   + Sostituisci {{group-version-id}} con `Version` quello che hai copiato per la nuova versione del gruppo.

   ```
   aws greengrass create-deployment \
   --deployment-type NewDeployment \
   --group-id {{group-id}} \
   --group-version-id {{group-version-id}}
   ```

1. <a name="copy-deployment-id"></a>Copia il valore `DeploymentId` dall'output.

1. <a name="get-deployment-status"></a>Ottenere lo stato della distribuzione.
   + Sostituisci {{group-id}} con `Id` quello che hai copiato per il gruppo.
   + Sostituisci {{deployment-id}} con `DeploymentId` quello che hai copiato per la distribuzione.

   ```
   aws greengrass get-deployment-status \
   --group-id {{group-id}} \
   --deployment-id {{deployment-id}}
   ```

   Se lo stato è`Success`, la distribuzione è avvenuta con successo. Per la risoluzione dei problemi, consultare [Risoluzione dei problemi AWS IoT Greengrass](gg-troubleshooting.md).

## Test della soluzione
<a name="connectors-cli-test-solution"></a>

1. <a name="choose-test-page"></a>Nella home page AWS IoT della console, scegli ** Test**.

1. Per ** Sottoscrivi all'argomento**, utilizza i seguenti valori, quindi scegli ** Iscriviti**. Il connettore Twilio Notifications pubblica informazioni sullo stato di questo argomento.


<table>
<thead>
  <tr><th>Proprietà</th><th>Valore</th></tr>
</thead>
<tbody>
  <tr><td>Argomento sottoscrizione</td><td>twilio/message/status</td></tr>
  <tr><td>Visualizzazione payload MQTT</td><td>Visualizza i payload come stringhe</td></tr>
</tbody>
</table>


1. Per ** Pubblica su argomento**, utilizza i seguenti valori, quindi scegli ** Pubblica ** per richiamare la funzione.


<table>
<thead>
  <tr><th>Proprietà</th><th>Valore</th></tr>
</thead>
<tbody>
  <tr><td>Topic</td><td>temperature/input</td></tr>
  <tr><td>Messaggio</td><td>Sostituisci {{recipient-name}} con un nome e {{recipient-phone-number}} con il numero di telefono del destinatario del messaggio di testo. Ad esempio: <code>+12345000000</code><pre>{<br />   "to_name": "{{recipient-name}}",<br />   "to_number": "{{recipient-phone-number}}",<br />   "temperature": 31<br />}</pre><br />Se utilizzi un account di prova, devi aggiungere i numeri di telefono dei destinatari non Twilio a un elenco di numeri di telefono verificati. Per ulteriori informazioni, consulta <a href="https://www.twilio.com/docs/usage/tutorials/how-to-use-your-free-trial-account#verify-your-personal-phone-number"> Verifica il tuo numero di telefono personale. </a></td></tr>
</tbody>
</table>


   Se l'operazione viene completata, il destinatario riceve il messaggio di testo e la console mostra lo stato `success` dai [dati di output](twilio-notifications-connector.md#twilio-notifications-connector-data-output).

   A questo punto, è necessario modificare `temperature` nel messaggio di input in **29** e pubblicare. Poiché è inferiore a 30, la TempMonitor funzione non attiva un messaggio Twilio.

## Consulta anche
<a name="connectors-cli-see-also"></a>
+ [Integrazione con servizi e protocolli tramite i connettori Greengrass](connectors.md)
+ [AWS-connettori Greengrass forniti](connectors-list.md)
+ [Nozioni di base sui connettori Greengrass (console)](connectors-console.md)
+ [AWS Secrets Manager comandi ](https://docs.aws.amazon.com/cli/latest/reference/secretsmanager) nel *AWS CLI Command Reference *
+ <a name="see-also-iam-cli"></a>[AWS Identity and Access Management comandi (IAM) ](https://docs.aws.amazon.com/cli/latest/reference/iam) nel *AWS CLI Command Reference *
+ <a name="see-also-lambda-cli"></a>[AWS Lambda comandi ](https://docs.aws.amazon.com/cli/latest/reference/lambda) nel *AWS CLI Command Reference *
+ <a name="see-also-gg-cli"></a>[AWS IoT Greengrass comandi ](https://docs.aws.amazon.com/cli/latest/reference/greengrass/index.html) nel *AWS CLI Command Reference *