

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

Uma ação Lambda (`lambda`) invoca uma AWS Lambda função, transmitindo uma mensagem MQTT. AWS IoT invoca funções Lambda de forma assíncrona.

Você pode seguir um tutorial que mostra como criar e testar uma regra com uma ação do Lambda. Para obter mais informações, consulte [Tutorial: Formatando uma notificação usando uma função AWS Lambda](iot-lambda-rule.md).

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

Esta ação de regra tem os seguintes requisitos:
+  AWS IoT Para invocar uma função Lambda, você deve configurar uma política que conceda `lambda:InvokeFunction` a permissão a. AWS IoT Você só pode invocar uma função do Lambda definida na Região da AWS mesma em que sua política do Lambda existe. As funções do Lambda usam políticas baseadas em recursos; por isso, você precisa anexar a política à própria função do Lambda. 

  Use o AWS CLI comando a seguir para anexar uma política que conceda a `lambda:InvokeFunction` permissão. Nesse comando, substitua:
  + *function\$1name*com o nome da função Lambda. Você adiciona uma nova permissão para atualizar a política de recursos da função.
  + *region*com o Região da AWS da função.
  + *account-id*com o Conta da AWS número em que a regra está definida.
  + *rule-name*com o nome da AWS IoT regra para a qual você está definindo a ação Lambda.
  + *unique\$1id*com um identificador de declaração exclusivo.
**Importante**  
Se você adicionar uma permissão para um AWS IoT principal sem fornecer o `source-arn` ou`source-account`, qualquer um Conta da AWS que crie uma regra com sua ação do Lambda poderá ativar regras para invocar sua função do Lambda. AWS IoT

  Para ter mais informações, consulte [AWS Lambda permissões](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 você usar o AWS IoT console para criar uma regra para a ação da regra Lambda, a função Lambda será acionada automaticamente. Se você usar AWS CloudFormation em vez disso com o [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), deverá adicionar um [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)recurso. O recurso então concede a você permissão para acionar a função do Lambda.

  O código a seguir mostra um exemplo de como adicionar esse recurso. Neste exemplo, substitua:
  + *function\$1name*com o nome da função Lambda.
  + *region*com o Região da AWS da função.
  + *account-id*com o Conta da AWS número em que a regra está definida.
  + *rule-name*com o nome da AWS IoT regra para a qual você está definindo a ação 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 você usa um AWS KMS cliente que conseguiu AWS KMS key criptografar dados em repouso no Lambda, o serviço deve ter permissão para usar AWS KMS key o em nome do chamador. Para obter mais informações, consulte [Criptografia em repouso](https://docs.aws.amazon.com/lambda/latest/dg/security-dataprotection.html#security-privacy-atrest), no *AWS Lambda Guia do Desenvolvedor*.

## Parâmetros
<a name="lambda-rule-action-parameters"></a>

Ao criar uma AWS IoT regra com essa ação, você deve especificar as seguintes informações:

`functionArn`  
O ARN da função Lambda a ser invocada. AWS IoT deve ter permissão para invocar a função. Para obter mais informações, consulte [Requisitos](#lambda-rule-action-requirements).  
Se você não especificar uma versão ou um alias para sua função do Lambda, a versão mais recente da função será encerrada. Você pode especificar uma versão ou um alias se quiser encerrar uma versão específica da função do Lambda. Para especificar uma versão ou alias, anexe a versão ou pseudônimo ao ARN da função do Lambda.  

```
arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction:someAlias
```
Para obter mais informações sobre versionamento e aliases, consulte [AWS Lambda Versionamento e aliases da função](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html).  
Suporta [modelos de substituição](iot-substitution-templates.md): API e somente AWS CLI 

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

O exemplo de JSON a seguir define uma ação Lambda em AWS IoT uma regra.

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

O exemplo de JSON a seguir define uma ação Lambda com modelos de substituição em uma regra. 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()}"
                }
            }
        ]
    }
}
```

## Consulte também
<a name="lambda-rule-action-see-also"></a>
+ [O que AWS Lambdaé](https://docs.aws.amazon.com/lambda/latest/dg/) no *Guia do AWS Lambda desenvolvedor*
+ [Tutorial: Formatando uma notificação usando uma função AWS Lambda](iot-lambda-rule.md)