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:
- Öffne die Lambda-Konsole.
- Wähle im Navigationsbereich Funktionen.
- Wähle Funktion erstellen aus.
- Wähle Ohne Vorgabe erstellen aus.
- 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.
- 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.
- Wähle Funktion erstellen aus.
- 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.
- Wähle Bereitstellen.
- 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