

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
<a name="lambda-rule-action"></a>

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](iot-lambda-rule.md).

## Voraussetzungen
<a name="lambda-rule-action-requirements"></a>

Diese Regelaktion hat die folgenden Anforderungen:
+  AWS IoT Um eine Lambda-Funktion aufzurufen, müssen Sie eine Richtlinie konfigurieren, die die `lambda:InvokeFunction` Berechtigung 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:InvokeFunction` Ersetzen Sie in diesem Befehl:
  + *function\$1name*mit dem Namen der Lambda-Funktion. Sie fügen eine neue Berechtigung hinzu, um die Ressourcenrichtlinie der Funktion zu aktualisieren.
  + *region*mit dem AWS-Region der Funktion.
  + *account-id*mit der AWS-Konto Nummer, unter der die Regel definiert ist.
  + *rule-name*mit dem Namen der AWS IoT Regel, für die Sie die Lambda-Aktion definieren.
  + *unique\$1id*mit einer eindeutigen Anweisungskennung.
**Wichtig**  
Wenn Sie eine Berechtigung für einen AWS IoT Prinzipal hinzufügen, ohne das `source-arn` oder anzugeben, kann jeder `source-account` AWS-Konto , der mit Ihrer Lambda-Aktion eine Regel erstellt, Regeln aktivieren, von denen aus Ihre Lambda-Funktion aufgerufen wird. AWS IoT

  Weitere Informationen finden Sie unter [AWS Lambda Berechtigungen](https://docs.aws.amazon.com/lambda/latest/dg/intro-permission-model.html).

  ```
  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"
  ```
+ 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 [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-iot-topicrule-lambdaaction.html), müssen Sie eine [https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-lambda-permission.html)Ressource 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\$1name*mit dem Namen der Lambda-Funktion.
  + *region*mit dem AWS-Region der Funktion.
  + *account-id*mit der AWS-Konto Nummer, unter der die Regel definiert ist.
  + *rule-name*mit dem Namen der AWS IoT Regel, für die Sie die Lambda-Aktion definieren.

  ```
  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
  ```
+ 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](https://docs.aws.amazon.com/lambda/latest/dg/security-dataprotection.html#security-privacy-atrest) im *Entwicklerhandbuch für AWS Lambda *.

## Parameters
<a name="lambda-rule-action-parameters"></a>

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](#lambda-rule-action-requirements).  
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:someAlias
```
Weitere Informationen über Versionsverwaltung und Aliasse finden Sie unter [AWS Lambda Funktions-Versionsverwaltung und Aliasse](https://docs.aws.amazon.com/lambda/latest/dg/versioning-aliases.html).  
Unterstützt [Ersatzvorlagen:](iot-substitution-templates.md) API und nur AWS CLI 

## Beispiele
<a name="lambda-rule-action-examples"></a>

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
<a name="lambda-rule-action-see-also"></a>
+ [Was ist? AWS Lambda](https://docs.aws.amazon.com/lambda/latest/dg/) im *AWS Lambda Developer Guide*
+ [Tutorial: Formatieren einer Benachrichtigung mithilfe einer AWS Lambda Funktion](iot-lambda-rule.md)