

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

# Lambda
<a name="lambda-rule-action"></a>

Un'azione Lambda (`lambda`) richiama una AWS Lambda funzione, passando un messaggio MQTT. AWS IoT richiama le funzioni Lambda in modo asincrono.

È possibile seguire un tutorial che mostra come creare e testare una regola con un'operazione Lambda. Per ulteriori informazioni, consulta [Tutorial: Formattazione di una notifica utilizzando una funzione AWS Lambda](iot-lambda-rule.md).

## Requisiti
<a name="lambda-rule-action-requirements"></a>

Questa operazione della regola presenta i seguenti requisiti:
+  AWS IoT Per richiamare una funzione Lambda, è necessario configurare una politica che conceda l'autorizzazione `lambda:InvokeFunction` a. AWS IoT Puoi richiamare solo una funzione Lambda definita nella Regione AWS stessa in cui esiste la tua policy Lambda. Le funzioni Lambda usano policy basate sulle risorse, quindi è necessario collegare la policy alla funzione Lambda stessa. 

  Usa il AWS CLI comando seguente per allegare una politica che conceda l'autorizzazione. `lambda:InvokeFunction` In questo comando, sostituisci:
  + *function\$1name*con il nome della funzione Lambda. Aggiungi una nuova autorizzazione per aggiornare la policy delle risorse della funzione.
  + *region*con Regione AWS la funzione.
  + *account-id*con il Account AWS numero in cui è definita la regola.
  + *rule-name*con il nome della AWS IoT regola per la quale si sta definendo l'azione Lambda.
  + *unique\$1id*con un identificatore di dichiarazione univoco.
**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 l'azione Lambda può attivare regole da cui richiamare la funzione Lambda. AWS IoT

  Per ulteriori informazioni, consulta [Autorizzazioni di AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html).

  ```
  aws lambda add-permission \ 
      --function-name function_name \ 
      --region region \ 
      --principal iot.amazonaws.com \
      --source-arn arn:aws:iot:region:account-id:rule/rule_name \
      --source-account account-id 
      --statement-id unique_id 
      --action "lambda:InvokeFunction"
  ```
+ Se si utilizza la AWS IoT console per creare una regola per l'azione della regola Lambda, la funzione Lambda viene attivata automaticamente. Se si utilizza AWS CloudFormation invece con [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html), è necessario aggiungere una risorsa. [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html) La risorsa ti concede quindi il permesso di attivare la funzione Lambda.

  Il codice seguente mostra un esempio di come aggiungere questa risorsa. In questo esempio, sostituisci:
  + *function\$1name*con il nome della funzione Lambda.
  + *region*con Regione AWS la funzione.
  + *account-id*con il Account AWS numero in cui è definita la regola.
  + *rule-name*con il nome della AWS IoT regola per la quale si sta definendo l'azione Lambda.

  ```
  Type: AWS::Lambda::Permission
  Properties:
    Action: lambda:InvokeFunction
    FunctionName: !Ref function_name
    Principal: "iot.amazonaws.com"
    SourceAccount: account-id
    SourceArn: arn:aws:iot:region:account-id:rule/rule_name
  ```
+ Se utilizzi un AWS KMS cliente gestito AWS KMS key per crittografare i dati inattivi in Lambda, il servizio deve avere l'autorizzazione a utilizzarli per conto AWS KMS key del chiamante. Per ulteriori informazioni, consulta [Crittografia dei dati a riposo](https://docs.aws.amazon.com/lambda/latest/dg/security-dataprotection.html#security-privacy-atrest) nella *Guida per gli sviluppatori di AWS Lambda *.

## Parameters
<a name="lambda-rule-action-parameters"></a>

Quando crei una AWS IoT regola con questa azione, devi specificare le seguenti informazioni:

`functionArn`  
L'ARN della funzione Lambda da richiamare. AWS IoT deve avere il permesso di richiamare la funzione. Per ulteriori informazioni, consulta [Requisiti](#lambda-rule-action-requirements).  
Se non specifici una versione o un alias per la funzione Lambda, la versione più recente della funzione viene arrestata. Se desideri arrestare una versione specifica della funzione Lambda, puoi specificare una versione o un alias. Per specificare una versione o un alias, aggiungere la versione o l'alias all'ARN della funzione Lambda.  

```
arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction:someAlias
```
Per ulteriori informazioni sulla funzione di controllo delle versioni e sugli alias, consulta [Funzione di controllo delle versioni e degli alias in AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html).  
Supporta [modelli sostitutivi: API](iot-substitution-templates.md) e solo AWS CLI 

## Esempi
<a name="lambda-rule-action-examples"></a>

Il seguente esempio JSON definisce un'azione Lambda in AWS IoT una regola.

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'", 
        "ruleDisabled": false, 
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "lambda": {
                    "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction"
                 }
            }
        ]
    }
}
```

Il seguente esempio JSON definisce un'azione Lambda con modelli di sostituzione in una regola. AWS IoT 

```
{
    "topicRulePayload": {
        "sql": "SELECT * FROM 'some/topic'",
        "ruleDisabled": false,
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "lambda": {
                    "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:${topic()}"
                }
            }
        ]
    }
}
```

## Consulta anche
<a name="lambda-rule-action-see-also"></a>
+ [AWS Lambda Che cos'è?](https://docs.aws.amazon.com/lambda/latest/dg/) nella *Guida per gli AWS Lambda sviluppatori*
+ [Tutorial: Formattazione di una notifica utilizzando una funzione AWS Lambda](iot-lambda-rule.md)