

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.

# Dauerhafte Lambda-Funktionen konfigurieren
<a name="durable-configuration"></a>

Um eine dauerhafte Ausführung Ihrer Lambda-Funktion zu ermöglichen, müssen Sie spezifische Einstellungen konfigurieren, die steuern, wie lange Ihre Funktion ausgeführt werden kann, wie lange Statusdaten aufbewahrt werden und welche Berechtigungen erforderlich sind.

## Ermöglichen Sie eine dauerhafte Ausführung
<a name="durable-config-settings"></a>

Um eine dauerhafte Ausführung für Ihre Lambda-Funktion zu ermöglichen, konfigurieren Sie die `DurableConfig` in Ihrer Funktionskonfiguration. Diese Einstellung steuert das Ausführungstimeout, die Beibehaltung des Status und das Versionsverhalten.

------
#### [ AWS CLI ]

```
aws lambda update-function-configuration \
  --function-name my-durable-function \
  --durable-config '{
    "ExecutionTimeout": 3600,
    "RetentionPeriodInDays": 30,
    "AllowInvokeLatest": true
  }'
```

------
#### [ CloudFormation ]

```
Resources:
  MyDurableFunction:
    Type: AWS::Lambda::Function
    Properties:
      FunctionName: my-durable-function
      Runtime: nodejs18.x
      Handler: index.handler
      Code:
        ZipFile: |
          // Your durable function code
      DurableConfig:
        ExecutionTimeout: 3600
        RetentionPeriodInDays: 30
        AllowInvokeLatest: true
```

------

**Konfigurationsparameter:**
+ `ExecutionTimeout`- Maximale Ausführungszeit in Sekunden (bis zu 31.536.000 für ein Jahr)
+ `RetentionPeriodInDays`- Wie lange sollen der Ausführungsstatus und der Ausführungsverlauf beibehalten werden (1—365 Tage)
+ `AllowInvokeLatest`- Ob der Aufruf der \$1LATEST-Version für eine dauerhafte Ausführung zulässig sein soll

## IAM-Berechtigungen für dauerhafte Funktionen
<a name="durable-iam-permissions"></a>

Dauerhafte Funktionen erfordern zusätzliche IAM-Berechtigungen, die über die standardmäßigen Lambda-Ausführungsrollen hinausgehen. Die Ausführungsrolle Ihrer Funktion muss Berechtigungen für die Statusverwaltung und die dauerhafte Ausführung beinhalten. APIs

**Erforderliche Mindestberechtigungen:**

```
{
  "Version": "2012-10-17",		 	 	 
  "Statement": [
    {
      "Effect": "Allow",
      "Action": [
        "lambda:InvokeFunction",
        "lambda:GetFunction",
        "lambda:ManageDurableState",
        "lambda:GetDurableExecution",
        "lambda:ListDurableExecutions"
      ],
      "Resource": "arn:aws:lambda:*:*:function:*"
    },
    {
      "Effect": "Allow",
      "Action": [
        "logs:CreateLogGroup",
        "logs:CreateLogStream",
        "logs:PutLogEvents"
      ],
      "Resource": "arn:aws:logs:*:*:*"
    }
  ]
}
```

**CloudFormation Beispiel für eine Ausführungsrolle:**

```
DurableFunctionRole:
  Type: AWS::IAM::Role
  Properties:
    AssumeRolePolicyDocument:
      Version: '2012-10-17'
      Statement:
        - Effect: Allow
          Principal:
            Service: lambda.amazonaws.com
          Action: sts:AssumeRole
    ManagedPolicyArns:
      - arn:aws:iam::aws:policy/service-role/AWSLambdaBasicExecutionRole
    Policies:
      - PolicyName: DurableFunctionPolicy
        PolicyDocument:
          Version: '2012-10-17'
          Statement:
            - Effect: Allow
              Action:
                - lambda:ManageDurableState
                - lambda:GetDurableExecution
                - lambda:ListDurableExecutions
              Resource: '*'
```

## Bewährte Methoden für die Konfiguration
<a name="durable-config-best-practices"></a>

Folgen Sie diesen bewährten Methoden, wenn Sie langlebige Funktionen für den Produktionseinsatz konfigurieren:
+ **Legen Sie geeignete Ausführungszeitlimits** fest — Konfigurieren Sie sie auf der `ExecutionTimeout` Grundlage der maximal zu erwartenden Dauer Ihres Workflows. Legen Sie keine unnötig langen Timeouts fest, da sich diese auf die Kosten und die Ressourcenzuweisung auswirken.
+ Sorgen Sie für ein **ausgewogenes Verhältnis zwischen Aufbewahrung und Speicherkosten** — Legen Sie diese auf der `RetentionPeriodInDays` Grundlage Ihrer Debugging- und Prüfanforderungen fest. Längere Aufbewahrungsfristen erhöhen die Speicherkosten.
+ **Versionierung in der Produktion verwenden** — Wählen Sie `AllowInvokeLatest` diese Option `false` in Produktionsumgebungen aus und verwenden Sie spezifische Funktionsversionen oder Aliase für dauerhafte Ausführungen.
+ **Statusgröße überwachen** — Große Zustandsobjekte erhöhen die Speicherkosten und können die Leistung beeinträchtigen. Halten Sie den Status minimal und verwenden Sie externen Speicher für große Datenmengen.
+ **Konfigurieren Sie die entsprechende Protokollierung** — Aktivieren Sie die detaillierte Protokollierung zur Fehlerbehebung bei lang andauernden Workflows, achten Sie dabei jedoch auf das Protokollvolumen und die Kosten.

**Beispiel für eine Produktionskonfiguration:**

```
{
  "ExecutionTimeout": 86400,
  "RetentionPeriodInDays": 7,
  "AllowInvokeLatest": false
}
```