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
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: Como formatar uma notificação usando uma função AWS Lambda.
Requisitos
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.aws lambda add-permission --function-name
function_name
--regionregion
--principal iot.amazonaws.com --source-arn arn:aws:iot:region
:account-id
:rule/rule_name
--source-accountaccount-id
--statement-idunique_id
--action "lambda:InvokeFunction"O comando
add-permission
tem os seguintes parâmetros:--function-name
-
Nome da função do Lambda. Você adiciona uma nova permissão para atualizar a política de recursos da função.
--region
-
O Região da AWS da função.
--principal
-
A entidade principal que obtém a permissão. Isso deve ser
iot.amazonaws.com
para permitir a AWS IoT permissão para chamar a função Lambda. --source-arn
-
O ARN da regra. Você pode usar o
get-topic-rule
AWS CLI comando para obter a regra ARN de uma. --source-account
-
O Conta da AWS local em que a regra é definida.
--statement-id
-
Um identificador de declaração exclusivo.
--action
-
A ação do Lambda que você deseja permitir nesta declaração. Para permitir AWS IoT a invocação de uma função Lambda, especifique.
lambda:InvokeFunction
Importante
Se você adicionar uma permissão para um AWS IoT principal sem fornecer o
source-arn
ousource-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 IoTPara ter mais informações, consulte AWS Lambda permissões.
-
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, no AWS Lambda Guia do Desenvolvedor.
Parâmetros
Ao criar uma AWS IoT regra com essa ação, você deve especificar as seguintes informações:
functionArn
-
A 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.
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 o alias à da função ARN 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.
Suporta modelos de substituição: API e somente AWS CLI
Exemplos
O JSON exemplo a seguir define uma ação Lambda em uma AWS IoT 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 JSON exemplo 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
-
O que AWS Lambdaé no Guia do AWS Lambda desenvolvedor
-
Tutorial: Como formatar uma notificação usando uma função AWS Lambda