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
Un'azione Lambda (lambda) richiama una AWS Lambda funzione, trasmettendo 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 un AWS Lambda funzione.
Requisiti
Questa operazione della regola presenta i seguenti requisiti:
-
Per AWS IoT richiamare una funzione Lambda, è necessario configurare una policy che conceda l'autorizzazione a.
lambda:InvokeFunctionAWS IoT Puoi richiamare solo una funzione Lambda definita nella stessa in Regione AWS 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 policy che concede l'autorizzazione.
lambda:InvokeFunctionIn questo comando, sostituisci:-
function_namecon il nome della funzione Lambda. Aggiungi una nuova autorizzazione per aggiornare la policy delle risorse della funzione. -
regioncon il nome Regione AWS della funzione. -
account-idcon il Account AWS numero in cui è definita la regola. -
rule-namecon il nome della AWS IoT regola per la quale stai definendo l'azione Lambda. -
unique_idcon un identificatore di dichiarazione univoco.
Importante
Se aggiungi un'autorizzazione per un AWS IoT principale senza fornire l'
source-arnorsource-account, chiunque crei una regola con Account AWS la tua azione Lambda può attivare le regole da cui richiamare la tua funzione Lambda. AWS IoTPer ulteriori informazioni, consulta Autorizzazioni di AWS Lambda.
aws lambda add-permission \ --function-namefunction_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 usi 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
AWS::IoT::TopicRule LambdaAction, è necessario aggiungere una risorsa.AWS::lambda::PermissionLa 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_namecon il nome della funzione Lambda. -
regioncon il nome Regione AWS della funzione. -
account-idcon il Account AWS numero in cui è definita la regola. -
rule-namecon il nome della AWS IoT regola per la quale stai definendo l'azione Lambda.
Type: AWS::Lambda::Permission Properties: Action: lambda:InvokeFunction FunctionName: !Reffunction_namePrincipal: "iot.amazonaws.com" SourceAccount:account-idSourceArn: arn:aws:iot:region:account-id:rule/rule_name -
-
Se utilizzi un AWS KMS cliente che è riuscito AWS KMS key a crittografare i dati inattivi in Lambda, il servizio deve disporre dell'autorizzazione per utilizzarli per AWS KMS key conto del chiamante. Per ulteriori informazioni, consulta Crittografia dei dati a riposo nella Guida per gli sviluppatori di AWS Lambda .
Parameters
Quando si crea una AWS IoT regola con questa azione, è necessario 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.
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:someAliasPer ulteriori informazioni sulla funzione di controllo delle versioni e sugli alias, consulta Funzione di controllo delle versioni e degli alias in AWS Lambda.
Supporta modelli sostitutivi: API e solo AWS CLI
Esempi
Il seguente esempio JSON definisce un'azione Lambda 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-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
-
AWS Lambda Che cos'è? nella Guida per gli AWS Lambda sviluppatori
-
Tutorial: Formattazione di una notifica utilizzando un AWS Lambda funzione