Lambda - AWS IoT Core

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

Lambda

Una acción Lambda (lambda) invoca una AWS Lambda función y pasa un mensaje. MQTT AWS IoT invoca funciones Lambda de forma asíncrona.

Puede seguir un tutorial que muestra cómo crear y probar una regla con una acción de Lambda. Para obtener más información, consulte Tutorial: Formatear una notificación mediante una función AWS Lambda.

Requisitos

Esta regla tiene los siguientes requisitos:

  • AWS IoT Para invocar una función Lambda, debe configurar una política que conceda lambda:InvokeFunction el permiso a. AWS IoT Solo puede invocar una función de Lambda definida en el Región de AWS mismo lugar donde existe su política de Lambda. Las funciones de Lambda utilizan políticas basadas en recursos, por lo que debe asociar la política a la función de Lambda en sí.

    Utilice el siguiente AWS CLI comando para adjuntar una política que conceda el permiso. lambda:InvokeFunction

    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"

    El comando add-permission espera los parámetros siguientes:

    --function-name

    Nombre de la función de Lambda. Agrega un nuevo permiso para actualizar la política de recursos de la función.

    --region

    El Región de AWS de la función.

    --principal

    La entidad principal que obtiene el permiso. Esto debería ser iot.amazonaws.com para permitir que AWS IoT se pueda llamar a la función Lambda.

    --source-arn

    El ARN de la regla. Puede usar el get-topic-rule AWS CLI comando para obtener el valor ARN de una regla.

    --source-account

    El Cuenta de AWS lugar donde se define la regla.

    --statement-id

    Un identificador de instrucción único.

    --action

    La acción Lambda que desea permitir en esta instrucción. Para AWS IoT permitir la invocación de una función Lambda, especifique. lambda:InvokeFunction

    importante

    Si agrega un permiso para un AWS IoT principal sin proporcionar el source-arn osource-account, cualquiera Cuenta de AWS que cree una regla con su acción de Lambda puede activar reglas desde las que invocar la función de Lambda. AWS IoT

    Para obtener más información, consulte Permisos de AWS Lambda.

  • Si utiliza un AWS KMS cliente gestionado AWS KMS key para cifrar datos en reposo en Lambda, el servicio debe tener permiso para utilizarlos en nombre de AWS KMS key la persona que llama. Para obtener más información, consulte Encryption at rest (Cifrado en reposo) en la Guía para desarrolladores de AWS Lambda .

Parámetros

Al crear una AWS IoT regla con esta acción, debe especificar la siguiente información:

functionArn

La ARN de la función Lambda que se va a invocar. AWS IoT debe tener permiso para invocar la función. Para obtener más información, consulte Requisitos.

Si no especifica una versión o un alias para su función de Lambda, se cerrará la versión más reciente de la función. Puede especificar una versión o un alias si desea cerrar una versión específica de su función de Lambda. Para especificar una versión o un alias, añada la versión o el alias a ARN la función Lambda.

arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction:someAlias

Para obtener más información acerca del control de versiones y los alias, consulte Control de versiones y alias de las funciones de AWS Lambda.

Soporta plantillas de sustitución: API y solo AWS CLI

Ejemplos

El siguiente JSON ejemplo define una acción Lambda en una AWS IoT regla.

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

El siguiente JSON ejemplo define una acción Lambda con plantillas de sustitución en una AWS IoT regla.

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

Véase también