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. Nesse comando, substitua:-
function_name
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_id
com um identificador de declaração exclusivo.
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.
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" -
-
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
AWS::IoT::TopicRule LambdaAction
, deverá adicionar umAWS::lambda::Permission
recurso. O recurso então concede a você permissão para acionar a função Lambda.O código a seguir mostra um exemplo de como adicionar esse recurso. Neste exemplo, substitua:
-
function_name
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, 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