Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.
Lambda
Eine Lambda (lambda) -Aktion ruft eine AWS Lambda Funktion auf und übergibt eine MQTT-Nachricht. AWS IoT ruft Lambda-Funktionen asynchron auf.
Sie können einem Tutorial folgen, das Ihnen veranschaulicht, wie Sie eine Regel mit einer Lambda-Aktion erstellen und testen. Weitere Informationen finden Sie unter Tutorial: Formatieren einer Benachrichtigung mithilfe einer AWS Lambda Funktion.
Voraussetzungen
Diese Regelaktion hat die folgenden Anforderungen:
-
AWS IoT Um eine Lambda-Funktion aufzurufen, müssen Sie eine Richtlinie konfigurieren, die die
lambda:InvokeFunctionBerechtigung dazu erteilt. AWS IoT Sie können nur eine Lambda-Funktion aufrufen, die in derselben AWS-Region definiert ist, in der Ihre Lambda-Richtlinie existiert. Lambda-Funktionen verwenden ressourcenbasierte Richtlinien, daher müssen Sie die Richtlinie an die Lambda-Funktion selbst anhängen.Verwenden Sie den folgenden AWS CLI Befehl, um eine Richtlinie anzuhängen, die die Berechtigung erteilt.
lambda:InvokeFunctionErsetzen Sie in diesem Befehl:-
function_namemit dem Namen der Lambda-Funktion. Sie fügen eine neue Berechtigung hinzu, um die Ressourcenrichtlinie der Funktion zu aktualisieren. -
regionmit dem AWS-Region der Funktion. -
account-idmit der AWS-Konto Nummer, unter der die Regel definiert ist. -
rule-namemit dem Namen der AWS IoT Regel, für die Sie die Lambda-Aktion definieren. -
unique_idmit einer eindeutigen Anweisungskennung.
Wichtig
Wenn Sie eine Berechtigung für einen AWS IoT Prinzipal hinzufügen, ohne das
source-arnoder anzugeben, kann jedersource-accountAWS-Konto , der mit Ihrer Lambda-Aktion eine Regel erstellt, Regeln aktivieren, von denen aus Ihre Lambda-Funktion aufgerufen wird. AWS IoTWeitere Informationen finden Sie unter AWS Lambda Berechtigungen.
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" -
-
Wenn Sie die AWS IoT Konsole verwenden, um eine Regel für die Lambda-Regelaktion zu erstellen, wird die Lambda-Funktion automatisch ausgelöst. Wenn Sie AWS CloudFormation stattdessen mit dem verwenden
AWS::IoT::TopicRule LambdaAction, müssen Sie eineAWS::lambda::PermissionRessource hinzufügen. Die Ressource erteilt Ihnen dann die Erlaubnis, die Lambda-Funktion auszulösen.Der folgende Code zeigt ein Beispiel für das Hinzufügen dieser Ressource. Ersetzen Sie in diesem Beispiel:
-
function_namemit dem Namen der Lambda-Funktion. -
regionmit dem AWS-Region der Funktion. -
account-idmit der AWS-Konto Nummer, unter der die Regel definiert ist. -
rule-namemit dem Namen der AWS IoT Regel, für die Sie die Lambda-Aktion definieren.
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 -
-
Wenn Sie einen AWS KMS Kunden verwenden, der es geschafft hat AWS KMS key , ruhende Daten in Lambda zu verschlüsseln, muss der Dienst über die Erlaubnis verfügen, den im Namen des AWS KMS key Anrufers zu verwenden. Weitere Informationen finden Sie unter Verschlüsselung im Ruhezustand im Entwicklerhandbuch für AWS Lambda .
Parameter
Wenn Sie mit dieser Aktion eine AWS IoT Regel erstellen, müssen Sie die folgenden Informationen angeben:
functionArn-
Der ARN der aufzurufenden Lambda-Funktion. AWS IoT muss die Erlaubnis haben, die Funktion aufzurufen. Weitere Informationen finden Sie unter Voraussetzungen.
Wenn Sie für Ihre Lambda-Funktion keine Version oder keinen Alias angeben, wird die neueste Version der Funktion heruntergefahren. Sie können eine Version oder einen Alias angeben, wenn Sie eine bestimmte Version Ihrer Lambda-Funktion herunterfahren möchten. Um eine Version oder einen Alias anzugeben, fügen Sie die Version oder den Alias dem ARN der Lambda-Funktion hinzu.
arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction:someAliasWeitere Informationen über Versionsverwaltung und Aliasse finden Sie unter AWS Lambda Funktions-Versionsverwaltung und Aliasse.
Unterstützt Ersatzvorlagen: API und nur AWS CLI
Beispiele
Das folgende JSON-Beispiel definiert eine Lambda-Aktion in einer AWS IoT Regel.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-2:123456789012:function:myLambdaFunction" } } ] } }
Das folgende JSON-Beispiel definiert eine Lambda-Aktion mit Ersatzvorlagen in einer AWS IoT Regel.
{ "topicRulePayload": { "sql": "SELECT * FROM 'some/topic'", "ruleDisabled": false, "awsIotSqlVersion": "2016-03-23", "actions": [ { "lambda": { "functionArn": "arn:aws:lambda:us-east-1:123456789012:function:${topic()}" } } ] } }
Weitere Informationen finden Sie auch unter
-
Was ist? AWS Lambda im AWS Lambda Developer Guide
-
Tutorial: Formatieren einer Benachrichtigung mithilfe einer AWS Lambda Funktion