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, passando 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: Formattare una notifica utilizzando una funzione AWS Lambda.
Requisiti
Questa operazione della regola presenta i seguenti requisiti:
-
AWS IoT Per richiamare una funzione Lambda, è necessario configurare una politica che conceda l'autorizzazione
lambda:InvokeFunctiona. AWS IoT Puoi richiamare solo una funzione Lambda definita nella Regione AWS stessa in 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 politica che conceda 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 Regione AWS la funzione. -
account-idcon il Account AWS numero in cui è definita la regola. -
rule-namecon il nome della AWS IoT regola per la quale si sta definendo l'azione Lambda. -
unique_idcon un identificatore di dichiarazione univoco.
Importante
Se aggiungi un'autorizzazione per un AWS IoT principale senza fornire
source-arnosource-account, chiunque Account AWS crei una regola con l'azione Lambda può attivare regole da cui richiamare la 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 si utilizza 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 Regione AWS la funzione. -
account-idcon il Account AWS numero in cui è definita la regola. -
rule-namecon il nome della AWS IoT regola per la quale si sta 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 gestito AWS KMS key per crittografare i dati inattivi in Lambda, il servizio deve avere l'autorizzazione a utilizzarli per conto AWS KMS key del chiamante. Per ulteriori informazioni, consulta Crittografia dei dati a riposo nella Guida per gli sviluppatori di AWS Lambda .
Parametri
Quando crei una AWS IoT regola con questa azione, devi 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 AWS IoT una regola.
{ "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: Formattare una notifica utilizzando una funzione AWS Lambda