

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.

# Erstellung eines Auftragsabwicklungssystems mit Lambda Durable-Funktionen
<a name="order-processing-app"></a>

**Anmerkung**  
ERFORDERLICH: Fügen Sie ein Architekturdiagramm hinzu, das das API Gateway, den Durable Function-Workflow und die unterstützenden Dienste zeigt (DynamoDB,) EventBridge

## Voraussetzungen
<a name="order-processing-prerequisites"></a>
+ AWS CLI installiert und konfiguriert
+ BEDARF: Spezifische Anforderungen an langlebige Funktionen

## Erstellen Sie die Quellcodedateien
<a name="order-processing-source"></a>

Erstellen Sie die folgenden Dateien in Ihrem Projektverzeichnis:
+ `lambda_function.py`- der Funktionscode
+ `requirements.txt`- Abhängigkeiten manifestieren sich

### Funktionscode
<a name="order-processing-function-code"></a>

```
# NEED: Verify correct imports
import boto3
import json

def lambda_handler(event, context):
    # NEED: Verify DurableContext syntax
    durable = context.durable
    
    try:
        # Validate and store order
        order = await durable.step('validate', async () => {
            return validate_order(event['order'])
        })
        
        # Process payment
        # NEED: Verify wait syntax
        await durable.wait(/* wait configuration */)
        
        # Additional steps
        # NEED: Complete implementation
        
    except Exception as e:
        # NEED: Error handling patterns
        raise e

def validate_order(order_data):
    # NEED: Implementation
    pass
```

### Anforderungsdatei
<a name="order-processing-requirements"></a>

```
# NEED: List of required packages
```

## Bereitstellen der Anwendung
<a name="order-processing-deploy"></a>

### Erstellen Sie eine DynamoDB-Tabelle für Bestellungen
<a name="order-processing-dynamodb"></a>

1. Öffnen Sie die DynamoDB-Konsole unter [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)

1. **Wählen Sie Tabelle erstellen**

1. Geben Sie als **Tabellenname** ein **Orders**

1. Geben Sie für **Partitionsschlüssel** Folgendes ein **orderId**

1. Belassen Sie andere Einstellungen als Standard

1. Wählen Sie **Tabelle erstellen**

### So erstellen Sie die Lambda-Funktion:
<a name="order-processing-lambda"></a>

1. Öffnen Sie die Lambda-Konsole unter [https://console.aws.amazon.com/lambda/](https://console.aws.amazon.com/lambda/)

1. Wählen Sie **Create function (Funktion erstellen)**.

1. Wählen Sie **Autor von Grund auf**

1. Geben Sie unter **Funktionsname** **ProcessOrder** ein.

1. Wählen Sie für **Runtime** Ihre bevorzugte Laufzeit

1. ERFORDERLICH: Fügen Sie eine für Durable Functions spezifische Konfiguration hinzu

1. Wählen Sie **Create function (Funktion erstellen)**.

### Erstellen Sie den API-Gateway-Endpunkt
<a name="order-processing-apigateway"></a>

1. Öffnen Sie die API Gateway Gateway-Konsole unter [https://console.aws.amazon.com/apigateway/](https://console.aws.amazon.com/apigateway/)

1. Wählen Sie **Create API**

1. Wählen Sie **HTTP-API**

1. Wählen Sie **Build**

1. Fügen Sie eine Integration mit Ihrer Lambda-Funktion hinzu

1. Konfigurieren Sie Routen für die Auftragsabwicklung

1. Bereitstellen der API

## Testen der Anwendung
<a name="order-processing-test"></a>

Reichen Sie eine Testbestellung ein:

```
{
    "orderId": "12345",
    "items": [
        {
            "productId": "ABC123",
            "quantity": 1
        }
    ]
}
```

ERFORDERLICH: Fügen Sie spezifische Überwachungsanweisungen für langlebige Funktionen hinzu

## Nächste Schritte
<a name="order-processing-next-steps"></a>

### Geschäftslogik hinzufügen
<a name="order-processing-business-logic"></a>

Implementieren Sie die Inventarverwaltung:

```
async def check_inventory(order):
    # Add inventory check logic
    pass
```

Preisberechnungen hinzufügen:

```
async def calculate_total(order):
    # Add pricing logic
    pass
```

### Verbessern Sie die Fehlerbehandlung
<a name="order-processing-error-handling"></a>

Vergütungslogik hinzufügen:

```
async def reverse_payment(order):
    # Add payment reversal logic
    pass
```

Stornierungen von Bestellungen bearbeiten:

```
async def cancel_order(order):
    # Add cancellation logic
    pass
```

### Integrieren Sie externe Systeme
<a name="order-processing-integrations"></a>

```
async def notify_shipping_provider(order):
    # Add shipping integration
    pass

async def send_customer_notification(order):
    # Add notification logic
    pass
```

### Verbessern Sie die Überwachung
<a name="order-processing-monitoring"></a>
+ Erstellen Sie CloudWatch Dashboards
+ Richten Sie Kennzahlen für die Bearbeitungszeiten von Bestellungen ein
+ Konfigurieren Sie Benachrichtigungen für verspätete Bestellungen