

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.

# Testen und Debuggen langlebiger Funktionen
<a name="test-and-debug-durable-functions"></a>

Das lokale Testen und Debuggen langlebiger Funktionen funktioniert ähnlich wie reguläre Lambda-Funktionen, mit automatischer Unterstützung für Checkpointing und Replay. Dieses Handbuch behandelt gängige Testszenarien und Techniken zur Fehlerbehebung.

## Lokaler Test-Workflow
<a name="test-and-debug-durable-functions-workflow"></a>

Wenn langlebige Funktionen lokal getestet werden, unterscheidet sich der Workflow von regulären Lambda-Funktionen:

**Arbeitsablauf beim Testen dauerhafter Funktionen**

1. Erstellen Sie Ihre Anwendung:

   ```
   $ sam build
   ```

1. Rufen Sie Ihre dauerhafte Funktion auf:

   ```
   $ sam local invoke MyDurableFunction --durable-execution-name test 
   ```

1. Überprüfen Sie bei Bedarf den Ausführungsverlauf:

   ```
   $ sam local execution history execution-id
   ```

## Allgemeine Testszenarien
<a name="test-and-debug-durable-functions-scenarios"></a>

### Testen des Checkpointing-Verhaltens
<a name="test-and-debug-durable-functions-scenarios-checkpoints"></a>

Um zu testen, ob Ihre Funktion ordnungsgemäß funktioniert, gehen Sie wie folgt vor:

```
# Example Python durable function
def handler(event, context):
    # This will create a checkpoint
    context.wait(10)  # Wait 10 seconds
    
    # Function resumes here after wait
    return {"message": "Function resumed after wait"}
```

Wenn Sie diese Funktion lokal aufrufen, wird die Wartezeit automatisch behandelt.

### Callback-Szenarien testen
<a name="test-and-debug-durable-functions-scenarios-callbacks"></a>

Für Funktionen, die auf externe Rückrufe warten:

1. Starten Sie Ihre dauerhafte Funktion, die auf einen Rückruf wartet

1. Löse den Rückruf in einem anderen Terminal auf:

   ```
   $ sam local callback succeed callback-id
   ```

1. Beobachten Sie, wie die Funktion die Ausführung fortsetzt

## Fehlerbehebung
<a name="test-and-debug-durable-functions-troubleshooting"></a>

### Dauerhafte Funktion wird nicht ordnungsgemäß ausgeführt
<a name="test-and-debug-durable-functions-troubleshooting-config"></a>

**Problem:** Die Funktion verhält sich nicht wie eine dauerhafte Funktion.

**Lösungen:**
+ Vergewissern Sie `DurableConfig` sich, dass dies in Ihrer SAM-Vorlage festgelegt ist
+ Stellen Sie sicher, dass Ihr Funktionscode SDK-Methoden für dauerhafte Funktionen verwendet `context.wait()` (z. B.
+ Überprüfe, ob du eine unterstützte Runtime (TypeScript, JavaScript, Python) verwendest

### Der Ausführungsverlauf kann nicht abgerufen werden
<a name="test-and-debug-durable-functions-troubleshooting-history"></a>

**Problem:** Der `local execution history` Befehl gibt keine Ergebnisse zurück.

**Lösungen:**
+ Stellen Sie sicher, dass die Ausführungs-ID korrekt ist
+ Vergewissern Sie sich, dass die Funktion mindestens einmal aufgerufen wurde

### Callback-Befehle funktionieren nicht
<a name="test-and-debug-durable-functions-troubleshooting-callbacks"></a>

**Problem:** Callback-Befehle lösen ausstehende Operationen nicht auf.

**Lösungen:**
+ Stellen Sie sicher, dass die Rückruf-ID korrekt ist
+ Stellen Sie sicher, dass die Funktion tatsächlich auf einen Rückruf wartet
+ Stellen Sie sicher, dass Sie die richtige Callback-Befehlssyntax verwenden

## Tipps zum Debuggen
<a name="test-and-debug-durable-functions-debugging"></a>
+ **Ausführungshistorie verwenden** — Sehen Sie sich den Ausführungsverlauf an, um den Ablauf Ihrer dauerhaften Funktion nachzuvollziehen
+ **Testen Sie inkrementell** — Beginnen Sie mit einfachen Warteoperationen, bevor Sie komplexe Logik hinzufügen
+ **Ausführliche Protokollierung verwenden — Aktivieren Sie die detaillierte Protokollierung**, um den Ausführungsablauf nachzuverfolgen

## Weitere Informationen
<a name="test-and-debug-durable-functions-learn"></a>

Weitere Informationen zum Testen und Debuggen finden Sie unter:
+ [Einführung in das Testen mit sam local invoke](using-sam-cli-local-invoke.md)- Dokumentation zum lokalen Aufrufen
+ [sam local execution history](sam-cli-command-reference-sam-local-execution-history.md)- Ausführungshistorie