

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

# Utilizzo AWS Lambda con AWS IoT
<a name="services-iot"></a>

AWS IoT fornisce una comunicazione sicura tra i dispositivi connessi a Internet (come i sensori) e il cloud. AWS Questo consente raccogliere, archiviare e analizzare i dati di telemetria da più dispositivi.

Puoi creare AWS IoT regole con cui i tuoi dispositivi possono interagire. Servizi AWS Il AWS IoT [Rules Engine](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules.html) fornisce un SQL-based linguaggio per selezionare i dati dai payload dei messaggi e inviarli ad altri servizi, come Amazon S3, Amazon DynamoDB e. AWS Lambda Si definisce una regola per richiamare una funzione Lambda quando si desidera richiamare un AWS altro servizio o un servizio di terze parti. 

Quando un messaggio IoT in arrivo attiva la regola, AWS IoT richiama la funzione Lambda in modo asincrono e passa i dati dal messaggio IoT alla [funzione](invocation-async.md). 

L'esempio seguente mostra una lettura dell'umidità da un sensore serra. I valori di **riga** e **pos** identificano la posizione del sensore. Questo evento di esempio si basa sul tipo serra in [Tutorial sulle regole AWS IoT](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rules-tutorial.html). 

**Example AWS IoT evento di messaggio**  

```
{
    "row" : "10",
    "pos" : "23",
    "moisture" : "75"
}
```

Per le chiamate asincrone, Lambda inserisce in una coda i messaggi e i [tentativi](invocation-retries.md) se la funzione restituisce un errore. Configura la tua funzione con una [destination](invocation-async-retain-records.md#invocation-async-destinations) per mantenere gli eventi che la tua funzione non è in grado di elaborare.

È necessario concedere l'autorizzazione al AWS IoT servizio per richiamare la funzione Lambda. Utilizza il comando `add-permission` per aggiungere un'istruzione di autorizzazione alla policy basata sulle risorse della funzione.

**Importante**  
Se aggiungi un'autorizzazione per un' AWS IoT entità principale senza fornire `source-arn` o`source-account`, chiunque Account AWS crei una regola con la tua AWS Lambda azione può attivare regole da cui richiamare la tua AWS Lambda funzione. AWS IoT Per ulteriori informazioni, consulta [Autorizzazioni di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/access-control-resource-based.html).

```
aws lambda add-permission --function-name {{my-function}} \
--statement-id iot-events --action "lambda:InvokeFunction" --principal iot.amazonaws.com \
--source-arn arn:aws:iot:{{us-east-1}}:{{123456789012}}:rule/{{my-rule}} \
--source-account {{123456789012}}
```

Verrà visualizzato l’output seguente:

```
{
    "Statement": "{\"Sid\":\"iot-events\",\"Effect\":\"Allow\",\"Principal\":{\"Service\":\"iot.amazonaws.com\"},\"Action\":\"lambda:InvokeFunction\",\"Resource\":\"arn:aws:lambda:us-east-1:123456789012:function:my-function\",\"Condition\":{\"ArnLike\":{\"AWS:SourceArn\":\"arn:aws:iot:us-east-1:123456789012:rule/my-rule\"},\"StringEquals\":{\"AWS:SourceAccount\":\"123456789012\"}}}"
}
```

Per ulteriori informazioni su come usare Lambda con AWS IoT, vedi [Creazione di una AWS Lambda regola](https://docs.aws.amazon.com/iot/latest/developerguide/iot-lambda-rule.html). 