

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

# Tutorial: Formattazione di una notifica utilizzando una funzione AWS Lambda
<a name="iot-lambda-rule"></a>

Questo tutorial dimostra come inviare i dati dei messaggi MQTT a un' AWS Lambda azione per la formattazione e l'invio a un altro servizio. AWS In questo tutorial, l' AWS Lambda azione utilizza l' AWS SDK per inviare il messaggio formattato all'argomento Amazon SNS che hai creato nel tutorial su come farlo. [Tutorial: Invio di una notifica Amazon SNS](iot-sns-rule.md)

Nel tutorial su come [Tutorial: Invio di una notifica Amazon SNS](iot-sns-rule.md), il documento JSON risultante dall'istruzione di query della regola è stato inviato come corpo del messaggio di testo. Il risultato è un messaggio di testo simile a questo esempio:

```
{"device_id":"32","reported_temperature":38,"max_temperature":30}
```

In questo tutorial, utilizzerai un'azione di AWS Lambda regola per richiamare una AWS Lambda funzione che formatta i dati dall'istruzione di query della regola in un formato più intuitivo, come questo esempio:

```
Device 32 reports a temperature of 38, which exceeds the limit of 30.
```

La AWS Lambda funzione che creerai in questo tutorial formatta la stringa del messaggio utilizzando i dati dell'istruzione rule query e richiama la funzione di [pubblicazione SNS](https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/sns.html#SNS.Client.publish) dell' AWS SDK per creare la notifica.

**Cosa imparerai in questo tutorial**
+ Come creare e testare una funzione AWS Lambda 
+ Come utilizzare l' AWS SDK in una AWS Lambda funzione per pubblicare una notifica Amazon SNS
+ Come utilizzare semplici query SQL e funzioni in un'istruzione di query della regola
+ Come utilizzare il client MQTT per testare una regola AWS IoT 

Questo tutorial dura circa 45 minuti.

**Topics**
+ [

## Passaggio 1: creare una AWS Lambda funzione che invii un messaggio di testo
](#iot-lambda-rule-create-lambda)
+ [

## Passaggio 2: creare una AWS IoT regola con un'azione di regola AWS Lambda
](#iot-lambda-rule-create-rule)
+ [

## Fase 3: Verificare la AWS IoT regola e AWS Lambda l'azione della regola
](#iot-lambda-rule-test-rule)
+ [

## Fase 4: Esamina i risultati e i passaggi successivi
](#iot-lambda-rule-next-steps)

**Prima di iniziare questo tutorial, assicurati di disporre di:**
+ 

**[Configurare Account AWS](setting-up.md)**  
Avrai bisogno della tua Account AWS AWS IoT console per completare questo tutorial.
+ 

**Aver rivisto [Visualizza i messaggi MQTT con il AWS IoT client MQTT](view-mqtt-messages.md)**  
Assicurati di poter usare il client MQTT per sottoscrivere e pubblicare un argomento. Utilizzerai il client MQTT per testare la nuova regola in questa procedura.
+ 

**Aver completato gli altri tutorial sulle regole in questa sezione**  
Questo tutorial richiede l'argomento di notifica SNS creato nel tutorial su come [Tutorial: Invio di una notifica Amazon SNS](iot-sns-rule.md). Si presuppone inoltre che in questa sezione siano stati completati i tutorial relativi alle regole.
+ 

**Aver rivisto la panoramica di [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)**  
Se non l'hai mai usato AWS Lambda prima, [AWS Lambda](https://docs.aws.amazon.com//lambda/latest/dg/welcome.html)consulta la sezione [Guida introduttiva a Lambda](https://docs.aws.amazon.com//lambda/latest/dg/getting-started.html) per conoscerne i termini e i concetti.

## Passaggio 1: creare una AWS Lambda funzione che invii un messaggio di testo
<a name="iot-lambda-rule-create-lambda"></a>

La AWS Lambda funzione di questo tutorial riceve il risultato dell'istruzione di query della regola, inserisce gli elementi in una stringa di testo e invia la stringa risultante ad Amazon SNS come messaggio in una notifica.

A differenza del tutorial su come fare[Tutorial: Invio di una notifica Amazon SNS](iot-sns-rule.md), che utilizzava un'azione di AWS IoT regola per inviare la notifica, questo tutorial invia la notifica dalla funzione Lambda utilizzando una funzione dell' AWS SDK. L'argomento effettivo di notifica Amazon SNS utilizzato in questo tutorial, tuttavia, è lo stesso utilizzato nel tutorial su come [Tutorial: Invio di una notifica Amazon SNS](iot-sns-rule.md).

**Per creare una AWS Lambda funzione che invii un messaggio di testo**

1. Crea una nuova AWS Lambda funzione.

   1. Nella [console AWS Lambda](https://console.aws.amazon.com//lambda/home) scegliere **Create function (Crea funzione)**.

   1. In **Create function (Crea funzione)** seleziona **Use a blueprint (Usa un blueprint)**.

      Cerca e seleziona il blueprint **hello-world-python**, quindi scegli **Configure (Configura)**.

   1. In **Basic information (Informazioni di base)**:

      1. In **Function name (Nome funzione)**, inserisci il nome della funzione, **format-high-temp-notification**. 

      1. In **Ruolo di esecuzione**, scegli **Crea un nuovo ruolo dai modelli di AWS policy**.

      1. In Nome ruolo, inserisci il nome del nuovo ruolo, **format-high-temp-notification-role**.

      1. In **Policy templates (Modelli di policy) - *facoltativo***, cerca e seleziona **Amazon SNS publish policy (Policy di pubblicazione Amazon SNS)**.

      1. Scegli **Crea funzione**.

1. Modifica il codice del blueprint per formattare e inviare una notifica Amazon SNS.

   1. Dopo aver creato la funzione, dovresti vedere la pagina dei **format-high-temp-notification**dettagli. In caso contrario, aprilo dalla pagina [Lambda **Funzioni**](https://console.aws.amazon.com//lambda/home#/functions).

   1. Nella pagina dei **format-high-temp-notification**dettagli, scegli la scheda **Configurazione** e scorri fino al pannello **Codice funzione**.

   1. Nella finestra **Function code (Codice della funzione)**, nel pannello **Environment (Ambiente)**, scegli il file Python, `lambda_function.py`.

   1. Nella finestra **Function code (Codice della funzione)**, elimina tutto il codice originale del programma dal blueprint e sostituiscilo con questo codice.

      ```
      import boto3
      #
      #   expects event parameter to contain:
      #   {
      #       "device_id": "32",
      #       "reported_temperature": 38,
      #       "max_temperature": 30,
      #       "notify_topic_arn": "arn:aws:sns:us-east-1:57EXAMPLE833:high_temp_notice"
      #   }
      # 
      #   sends a plain text string to be used in a text message
      #
      #      "Device {0} reports a temperature of {1}, which exceeds the limit of {2}."
      #   
      #   where:
      #       {0} is the device_id value
      #       {1} is the reported_temperature value
      #       {2} is the max_temperature value
      #
      def lambda_handler(event, context):
      
          # Create an SNS client to send notification
          sns = boto3.client('sns')
      
          # Format text message from data
          message_text = "Device {0} reports a temperature of {1}, which exceeds the limit of {2}.".format(
                  str(event['device_id']),
                  str(event['reported_temperature']),
                  str(event['max_temperature'])
              )
      
          # Publish the formatted message
          response = sns.publish(
                  TopicArn = event['notify_topic_arn'],
                  Message = message_text
              )
      
          return response
      ```

   1. Seleziona **Implementa**.

1. In una nuova finestra, controlla l'Amazon Resource Name (ARN) dell'argomento Amazon SNS dal turtorial su come [Tutorial: Invio di una notifica Amazon SNS](iot-sns-rule.md).

   1. In una nuova finestra, apri la [pagina degli argomenti della console Amazon SNS](https://console.aws.amazon.com//sns/v3/home#/topics). 

   1. Nella pagina **Topics (Argomenti)**, trova l’argomento della notifica **high\$1temp\$1notice** nell'elenco degli argomenti Amazon SNS.

   1. Trova l'**ARN** dell’argomento della notifica **high\$1temp\$1notice** da utilizzare nel passaggio successivo.

1. Crea un test per la tua funzione Lambda.

   1. Nella pagina [**Funzioni** Lambda](https://console.aws.amazon.com//lambda/home#/functions) della console, nella pagina dei **format-high-temp-notification**dettagli, scegli **Seleziona un evento di test** nell'angolo in alto a destra della pagina (anche se sembra disabilitato), quindi scegli **Configura eventi di test**.

   1. In **Configure test event (Configura eventi di test)**, scegli **Create new test event (Crea un nuovo evento di test)**.

   1. In **Event name (Nome evento)**, inserisci **SampleRuleOutput**.

   1. Nell'editor JSON riportato di seguito **Event name (Nome evento)**, incolla questo documento JSON di esempio. Questo è un esempio di ciò che la AWS IoT regola invierà alla funzione Lambda.

      ```
      {
        "device_id": "32",
        "reported_temperature": 38,
        "max_temperature": 30,
        "notify_topic_arn": "arn:aws:sns:us-east-1:57EXAMPLE833:high_temp_notice"
      }
      ```

   1. Fai riferimento alla finestra che ha l’**ARN** dell’argomento della notifica **high\$1temp\$1notice** e copia il valore dell'ARN.

   1. Sostituisci il valore `notify_topic_arn` nell'editor JSON con l’ARN dall'argomento di notifica.

      Tieni aperta questa finestra in modo da poter utilizzare di nuovo questo valore ARN quando crei la regola AWS IoT .

   1. Scegli **Create** (Crea).

1. Testare la funzione con i dati di esempio.

   1. **Nella pagina dei **format-high-temp-notification**dettagli, nell'angolo in alto a destra della pagina, conferma che **SampleRuleOutput**appare accanto al pulsante Test.** In caso contrario, sceglilo dall'elenco degli eventi di test disponibili.

   1. Per inviare il messaggio di output della regola di esempio alla funzione, scegli **Test**.

Se la funzione e la notifica hanno funzionato, riceverai un messaggio di testo sul tuo cellulare che ha sottoscritto la notifica.

Se non hai ricevuto un messaggio di testo sul telefono, controlla il risultato dell’operazione. Nel pannello **Function code (Codice della funzione)**, nella casella **Execution result (Risultato dell'esecuzione)**, rivedi la risposta per trovare eventuali errori che si sono verificati. Non proseguire con il passaggio successivo finché la funzione non è in grado di inviare la notifica al telefono.

## Passaggio 2: creare una AWS IoT regola con un'azione di regola AWS Lambda
<a name="iot-lambda-rule-create-rule"></a>

In questo passaggio, si utilizzerà l'istruzione query della regola per formattare i dati dal dispositivo sensore meteo immaginario da inviare a una funzione Lambda, che formatta e invia un messaggio di testo.

Un esempio di messaggio payload ricevuto da un dispositivo con sensore meteo è simile al seguente:

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

In questa regola, si utilizzerà l'istruzione query della regola per creare un payload dei messaggi per la funzione Lambda simile al seguente:

```
{
  "device_id": "32",
  "reported_temperature": 38,
  "max_temperature": 30,
  "notify_topic_arn": "arn:aws:sns:us-east-1:57EXAMPLE833:high_temp_notice"
}
```

Contiene tutte le informazioni necessarie alla funzione Lambda per formattare e inviare il messaggio di testo corretto.

**Per creare la AWS IoT regola per chiamare una funzione Lambda**

1. Apri l'[hub **Rules** della AWS IoT console](https://console.aws.amazon.com//iot/home#/rulehub).

1. Per iniziare a creare la nuova regola in **Rules (Regole)**, scegli **Create (Crea)**.

1. Nella parte superiore di **Create a rule (Crea una regola)**:

   1. In **Name (Nome)**, inserisci il nome della regola, **wx\$1friendly\$1text**.

      Ricorda che il nome di una regola deve essere univoco all'interno della tua regione Account AWS e non può avere spazi. Abbiamo usato un carattere di sottolineatura in questo nome per separare le due parole nel nome della regola.

   1.  In **Description (Descrizione)**, descrivi la regola. 

      Una descrizione significativa ti aiuta a ricordare cosa fa questa regola e perché l'hai creata. La descrizione può essere lunga quanto necessario, quindi sii il più dettagliato possibile. 

1. In **Rule query statement (Istruzione query regola)** di **Create a rule (Crea una regola)**:

   1.  In **Using SQL version (Uso della versione SQL)**, seleziona **2016-03-23**. 

   1. Nella casella di modifica **Rule query statement (Istruzione query regola)**, inserisci l'istruzione: 

      ```
      SELECT 
        cast(topic(2) AS DECIMAL) as device_id, 
        temperature as reported_temperature,
        30 as max_temperature,
        'arn:aws:sns:us-east-1:57EXAMPLE833:high_temp_notice' as notify_topic_arn
      FROM 'device/+/data' WHERE temperature > 30
      ```

      Questa istruzione:
      + Ascolta i messaggi MQTT con un argomento che corrisponde al filtro dell’argomento `device/+/data` e che hanno un valore `temperature` maggiore di 30. 
      + Seleziona il secondo elemento dalla stringa dell'argomento, lo converte in un numero decimale e quindi lo assegna al campo `device_id`.
      + Seleziona il valore del campo `temperature` dal payload del messaggio e lo assegna al campo `reported_temperature`. 
      + Crea un valore costante, `30`, per rappresentare il valore limite e lo assegna al campo `max_temperature`. 
      + Crea un valore costante per il campo `notify_topic_arn`.

   1. Fai riferimento alla finestra che ha l’**ARN** dell’argomento della notifica **high\$1temp\$1notice** e copia il valore dell'ARN.

   1. Sostituisci il valore ARN (*arn:aws:sns:us-east-1:57EXAMPLE833:high\$1temp\$1notice*) nell'editor delle istruzioni di interrogazione delle regole con l'ARN dell'argomento della notifica.

1. In **Set one or more actions (Imposta una o più operazioni)**:

   1. Per aprire l'elenco delle operazioni delle regole per questa regola, scegli **Add action (Aggiungi operazione)**.

   1. In **Select an action (Seleziona un’operazione)**, scegli **Send a message to a Lambda function (Invia un messaggio a una funzione Lambda)**.

   1. Per aprire la pagina di configurazione dell’operazione selezionata, nella parte inferiore dell'elenco delle operazioni, scegli **Configure action (Configura operazione)**.

1. In **Configure action (Configura operazione)**:

   1. In **Function name (Nome della funzione)**, scegli **Select (Seleziona)**.

   1. Scegli **format-high-temp-notification**.

   1. Nella parte inferiore di **Configure action (Configura operazione)**, scegli **Add action (Aggiungi operazione)**.

   1. Per creare la regola, nella parte inferiore di **Create a rule (Crea una regola)**, scegli **Create a rule (Crea una regola)**.

## Fase 3: Verificare la AWS IoT regola e AWS Lambda l'azione della regola
<a name="iot-lambda-rule-test-rule"></a>

Per testare la nuova regola, utilizza il client MQTT per pubblicare e sottoscrivere i messaggi MQTT utilizzati da questa regola.

Apri il [Client MQTT nella console AWS IoT](https://console.aws.amazon.com//iot/home#/test) in una nuova finestra. Ora è possibile modificare la regola senza perdere la configurazione del client MQTT. Se abbandoni il client MQTT per andare in un'altra pagina della console, perderai le tue sottoscrizioni o i registri dei messaggi.

**Utilizzare il client MQTT per testare la regola**

1. Nel [Client MQTT nella console AWS IoT](https://console.aws.amazon.com//iot/home#/test), effettua la sottoscrizione agli argomenti di input, in questo caso, `device/+/data`.

   1. Nel client MQTT, sotto **Subscriptions (Sottoscrizioni)** scegli **Subscribe to a topic (Effettua la sottoscrizione a un argomento)**.

   1. In **Subscription topic (Argomento sottoscrizione)**, inserisci l'argomento del filtro dell’argomento di input, **device/\$1/data**.

   1. Lascia gli altri campi ai valori predefiniti.

   1. Scegli **Subscribe to topic (Effettua sottoscrizione all'argomento)**.

      Nella colonna **Subscriptions (Sottoscrizioni)**, sotto **Publish to a topic (Pubblica un argomento)**, **device/\$1/data** viene visualizzato. 

1. Pubblicazione di un messaggio nell'argomento di input con un ID dispositivo specifico, **device/32/data**. Non è possibile pubblicare su argomenti MQTT che contengono caratteri jolly.

   1. Nel client MQTT, sotto **Subscriptions (Sottoscrizioni)** scegli **Publish to topic (Pubblica in un argomento)**.

   1. Nel campo **Publish (Pubblica)**, inserisci il nome dell'argomento di input, **device/32/data**.

   1. Copia i dati di esempio mostrati qui e, nella casella di modifica sotto il nome dell'argomento, incolla i dati di esempio.

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

   1. Scegli **Publish to topic (Pubblica in un argomento)** per pubblicare il messaggio MQTT.

1. Conferma che il messaggio di testo è stato inviato.

   1. Nel client MQTT, sotto **Subscriptions (Sottoscrizioni)**, accanto all'argomento a cui hai effettuato la sottoscrizione in precedenza è presente un punto verde.

      I punti verdi indicano che uno o più nuovi messaggi sono stati ricevuti dall'ultima volta che li hai visualizzati.

   1. Sotto **Subscriptions (Sottoscrizioni)**, scegli **device/\$1/data (dispositivo/\$1/dati)** per verificare che il payload del messaggio corrisponda a quello che hai appena pubblicato e assomigli a questo:

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

   1. Controlla il telefono che hai usato per effettuare la sottoscrizione all'argomento SNS e conferma che il contenuto del payload del messaggio sia simile al seguente:

      ```
      Device 32 reports a temperature of 38, which exceeds the limit of 30.
      ```

      Se si modifica l'elemento ID dell’argomento nell'argomento del messaggio, tenere presente che la trasformazione del valore `topic(2)` in un valore numerico funzionerà solo se tale elemento nell'argomento del messaggio contiene solo caratteri numerici.

1. Prova a inviare un messaggio MQTT in cui la temperatura non supera il limite.

   1. Nel client MQTT, sotto **Subscriptions (Sottoscrizioni)**, scegli **Publish to topic (Pubblica in un argomento)**.

   1. Nel campo **Publish (Pubblica)**, inserisci il nome dell'argomento di input, **device/33/data**.

   1. Copia i dati di esempio mostrati qui e, nella casella di modifica sotto il nome dell'argomento, incolla i dati di esempio.

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

   1. Per inviare il messaggio MQTT, scegli **Publish to topic (Pubblica in un argomento)**.

   Il messaggio inviato dovrebbe essere visualizzato nella sottoscrizione **device/\$1/data**; tuttavia, poiché il valore della temperatura è inferiore alla temperatura massima nell'istruzione query della regola, non si dovrebbe ricevere un messaggio di testo.

   Se il comportamento non viene visualizzato correttamente, controlla i suggerimenti per la risoluzione dei problemi.

### Risoluzione dei problemi relativi alla AWS Lambda regola e alla notifica
<a name="iot-lambda-rule-troubleshoot"></a>

Ecco alcune cose da controllare nel caso in cui non stai vedendo i risultati che ti aspetti.
+ 

**Hai un banner di errore**  
Se viene visualizzato un errore quando è stato pubblicato il messaggio di input, correggilo prima. I seguenti passaggi potrebbero aiutarti a correggere l'errore.
+ 

**Il messaggio di input non viene visualizzato nel client MQTT**  
Ogni volta che pubblichi il tuo messaggio di input nell’argomento `device/32/data`, tale messaggio dovrebbe essere visualizzato nel client MQTT, se hai effettuato la sottoscrizione al filtro dell’argomento `device/+/data` come descritto nella procedura.

**Controlli**
  + 

**Controlla il filtro degli argomenti a cui hai effettuato la sottoscrizione**  
Se hai effettuato la sottoscrizione all'argomento del messaggio di input come descritto nella procedura, visualizzerai una copia del messaggio di input ogni volta che lo pubblichi.

    Se il messaggio non viene visualizzato, controlla il nome dell'argomento sottoscritto e confrontalo con l'argomento in cui è stato pubblicato. I nomi degli argomenti fanno distinzione tra maiuscole e minuscole e l'argomento a cui è stato sottoscritto deve essere identico all'argomento in cui hai pubblicato il payload dei messaggi.
  + 

**Controlla la funzione di pubblicazione dei messaggi**  
Nel client MQTT, sotto **Subscriptions (Sottoscrizioni)**, scegli **device/\$1/data (dispositivo/\$1/dati)**, controlla l'argomento del messaggio di pubblicazione e quindi scegli **Publish to topic (Pubblica in un argomento)**. Dovresti vedere il payload del messaggio dalla casella di modifica sotto l'argomento visualizzato nell'elenco dei messaggi. 
+ 

**Se non ricevi un messaggio SMS**  
Affinché la regola funzioni, deve disporre della policy corretta che la autorizzi a ricevere un messaggio e inviare una notifica SNS e deve ricevere il messaggio.

**Controlli**
  + 

**Controlla il Regione AWS tuo client MQTT e la regola che hai creato**  
La console in cui si esegue il client MQTT deve trovarsi nella stessa regione AWS della regola creata.
  + 

**Verifica che il valore della temperatura nel payload del messaggio superi la soglia di prova**  
Se il valore della temperatura è minore o uguale a 30, come definito nell'istruzione query della regola, la regola non eseguirà alcuna delle operazioni.
  + 

**Controlla l'argomento del messaggio di input nell'istruzione query della regola**  
Affinché la regola funzioni, è necessario che venga visualizzato un messaggio con il nome dell'argomento corrispondente al filtro dell’argomento nella clausola FROM dell'istruzione query della regola.

    Controlla l'ortografia del filtro argomento nell'istruzione query regola con quella dell'argomento nel client MQTT. I nomi degli argomenti fanno distinzione tra maiuscole e minuscole e l'argomento del messaggio deve corrispondere al filtro argomento nell'istruzione query della regola.
  + 

**Controllare il contenuto del payload del messaggio di input**  
Affinché la regola funzioni, è necessario trovare il campo dati nel payload del messaggio dichiarato nell'istruzione SELECT.

    Controlla l'ortografia del campo `temperature` nell'istruzione query della regola con quella del payload del messaggio nel client MQTT. I nomi dei campi fanno distinzione tra maiuscole e minuscole e il campo `temperature`nell'istruzione query della regola deve essere identico a quello del campo `temperature` nel payload del messaggio.

    Assicurati che il documento JSON nel payload del messaggio sia formattato correttamente. Se il JSON presenta errori, come una virgola mancante, la regola non sarà in grado di leggerlo.
  + 

**Controlla le notifiche Amazon SNS**  
In [Fase 1: creare un argomento Amazon SNS che invii un messaggio di testo SMS](iot-sns-rule.md#iot-sns-rule-create-sns-topic), fai riferimento al passaggio 3 che descrive come testare la notifica Amazon SNS e testa la notifica per assicurarti che la notifica funzioni.
  + 

**Controlla la funzione Lambda**  
In [Passaggio 1: creare una AWS Lambda funzione che invii un messaggio di testo](#iot-lambda-rule-create-lambda), fai riferimento al passaggio 5 che descrive come testare la funzione Lambda utilizzando i dati di test e testa la funzione Lambda.
  + 

**Controlla il ruolo utilizzato dalla regola**  
L'operazione della regola deve disporre dell'autorizzazione per ricevere l'argomento originale e pubblicare il nuovo argomento. 

    Le policy che autorizzano la regola a ricevere i dati dei messaggi e a ripubblicarli sono specifiche degli argomenti utilizzati. Se si modifica l'argomento utilizzato per ripubblicare i dati del messaggio, è necessario aggiornare il ruolo dell'operazione della regola per aggiornare la policy in modo che corrisponda all'argomento corrente.

    Se si sospetta che questo sia il problema, modificare l'operazione Ripubblica regola e creare un nuovo ruolo. I nuovi ruoli creati dall'operazione della regola ricevono le autorizzazioni necessarie per eseguire queste operazioni.

## Fase 4: Esamina i risultati e i passaggi successivi
<a name="iot-lambda-rule-next-steps"></a>

**In questo tutorial:**
+ Hai creato una AWS IoT regola per chiamare una funzione Lambda che ha inviato una notifica Amazon SNS utilizzando il payload di messaggi personalizzato.
+ È stata utilizzata una semplice query SQL e funzioni in un'istruzione di query della regola per creare un nuovo payload dei messaggi per la funzione Lambda.
+ Hai usato il client MQTT per testare la tua regola. AWS IoT 

**Fasi successive**  
Dopo aver inviato alcuni messaggi di testo con questa regola, prova a sperimentarla per vedere come la modifica di alcuni aspetti del tutorial influisce sul messaggio e quando viene inviato. Ecco alcune idee per iniziare.
+ *device\$1id*Modificate l'argomento del messaggio di input e osservate l'effetto nel contenuto del messaggio di testo.
+ Modifica i campi selezionati nell'istruzione query della regola, aggiorna la funzione Lambda per utilizzarli in un nuovo messaggio e osserva l'effetto nel contenuto del messaggio di testo.
+ Modifica il test nell'istruzione query della regola per verificare una temperatura minima anziché una temperatura massima. Aggiorna la funzione Lambda per formattare un nuovo messaggio e ricordati di cambiare il nome di `max_temperature`.
+ Per ulteriori informazioni su come trovare gli errori che potrebbero verificarsi durante lo sviluppo e l'utilizzo AWS IoT delle regole, consulta[Monitoraggio AWS IoT](monitoring_overview.md).