Direkt zum Inhalt

Wie stelle ich eine Verbindung zu DynamoDB von einer Lambda-Instance in einer VPC her?

Lesedauer: 3 Minute
0

Ich möchte Amazon DynamoDB mit meiner AWS Lambda-Instance in einer Amazon Virtual Private Cloud (Amazon VPC) integrieren.

Lösung

Voraussetzungen:

Lambda mit DynamoDB verbinden

Führe die folgenden Schritte aus:

  1. Öffne die Lambda-Konsole.
  2. Wähle im Navigationsbereich Funktionen.
  3. Wähle Funktion erstellen aus.
  4. Wähle Ohne Vorgabe erstellen aus.
  5. Konfiguriere unter Grundlegende Informationen Folgendes:
    Gib unter Funktionsname den Namen deiner Funktion ein.
    Wähle für Laufzeit eine Laufzeitoption aus. In diesem Beispiel wird Python 3.12 verwendet.
    Wähle für Architekture die Option x86_64 aus.
  6. Konfiguriere unter Erweiterte Einstellungen Folgendes:
    Wähle VPC aktivieren aus und wähle anschließend deine VPC aus.
    Wähle für Subnetze nur private Subnetze aus.
    Wähle für Sicherheitsgruppen die Standard-Sicherheitsgruppe aus.
  7. Wähle Funktion erstellen aus.
  8. Gib auf der Seite mit den Funktionsdetails unter Codequelle den folgenden Code ein:
    import json
    import boto3
    
    client = boto3.client('dynamodb')
    
    def lambda_handler(event, context):
        response = client.get_item(
            TableName='Music',
            Key={
                'Artist': {
                    'S': 'No One You Know',
                },
                'SongTitle': {
                    'S': 'Call Me Today',
                },
            }
        )
    
        print(response)
    
        return {
            'statusCode': 200,
            'body': json.dumps('Success!')
        }
    Hinweis: Ersetze TableName und Key durch deine Werte.
  9. Wähle Bereitstellen.
  10. Teste deine Funktion.
    Hinweis: Um die Funktion zu testen, muss die AWS Identity and Access Management (IAM)-Rolle für Lambda über die entsprechenden Berechtigungen verfügen. Weitere Informationen findest du unter Verwaltung von Berechtigungen in AWS Lambda.

Zusätzliche Problembehandlung

Um eine Lambda-Funktion zu untersuchen, die mit einer VPC verbunden ist, führe die folgenden Aktionen aus:

  • Entferne alle Verbindungen zu öffentlichen Subnetzen aus deiner Lambda-Funktion. Wenn du eine Verbindung zu öffentlichen Subnetzen herstellst, versucht der Datenverkehr über die öffentlichen Subnetze zu laufen und kann zu sporadischen Timeout-Problemen führen.

  • Stelle sicher, dass dein Gateway-Endpunkt für DynamoDB korrekt konfiguriert ist.

  • Aktualisiere deine privaten Subnetze, die mit deiner Lambda-Funktion verknüpft sind, sodass sie über deinen DynamoDB-VPC-Gateway-Endpunkt routen. Diese Endpunkte verfügen über von AWS verwaltete Präfixlisten, die die Konfiguration von Sicherheitseinstellungen zwischen Lambda und DynamoDB vereinfachen.
    Beispiel für eine Routing-Tabelle eines privaten Subnetzes:

    Route Table: rtb-12345
    Destination        Gateway     Status
    10.0.0.0/16         local      active
    pl-1234           vpce-1234    active
  • Aktualisiere die Regeln der Lambda-Sicherheitsgruppe, sodass sämtlicher Datenverkehr erlaubt ist.

Ähnliche Informationen

Erstellen einer Lambda-Funktion mit der Konsole

Amazon VPC-Endpunkte verwenden, um auf DynamoDB zuzugreifen

Netzwerk- und VPC-Konfigurationen

AWS OFFICIALAktualisiert vor 2 Jahren