Wie gebe ich einer Lambda-Funktion, die mit einer Amazon VPC verbunden ist, Internetzugriff?
Ich möchte meiner AWS Lambda-Funktion, die mit einer Amazon Virtual Private Cloud (Amazon VPC) verbunden ist, Internetzugriff gewähren.
Kurzbeschreibung
Standardmäßig werden Lambda-Funktionen in einer von Lambda verwalteten VPC mit Internetzugrifff ausgeführt. Füge der Funktion eine VPC-Konfiguration hinzu, um auf Ressourcen in einer VPC in deinem AWS-Konto zuzugreifen. Diese Konfiguration beschränkt die Funktion auf Ressourcen innerhalb der VPC, es sei denn, die VPC hat Internetzugrifff.
Selbst wenn du eine Lambda-Funktion mit einem öffentlichen Subnetz verknüpfst, kann die Funktion keine direkte Verbindung zum Internet herstellen. Eine Funktion in einer VPC hat eine private IP-Adresse und benötigt ein NAT-Gateway oder eine NAT-Instance, damit die VPC auf das Internet zugreifen kann.
Hinweis: Du kannst VPC-Endpunkte verwenden, um über eine Amazon VPC-Verbindung ohne Internetzugriff eine Verbindung zu unterstützten AWS-Services herzustellen.
Lösung
Ein öffentliches Subnetz und ein privates Subnetz in Amazon VPC erstellen
Erstelle ein privates Subnetz für deine Lambda-Funktion und ein öffentliches Subnetz für dein NAT-Gateway. Gib in das Feld Name-Tag einen Namen für jedes Subnetz ein, der es entweder als öffentlich oder privat identifiziert. Verwende beispielsweise Öffentliches Subnetz, Privates Lambda 1 und Privates Lambda 2.
Hinweis: Es hat sich bewährt, mehr als ein privates Subnetz in verschiedenen Availability Zones einzurichten. Diese Aktion erzeugt Redundanz und ermöglicht es Lambda, eine hohe Verfügbarkeit für die Funktion aufrechtzuerhalten.
Verwendung eines Internet-Gateways, um dem Subnetz einen Internetzugriff hinzuzufügen
Erstelle ein Internet-Gateway und hänge es dann an deine VPC an.
Ein NAT-Gateway erstellen
Erstelle ein NAT-Gateway. Wähle als Subnetz das Subnetz aus, das du veröffentlichen möchtest. Wähle beispielsweise Öffentliches Subnetz aus.
(Optional) Teste dein NAT-Gateway-Setup.
Zwei benutzerdefinierte Routentabellen erstellen
Hinweis: Wenn eine Lambda-Funktion in einer VPC Anforderungen stellt, wählt die Funktion nach dem Zufallsprinzip ein zugeordnetes Subnetz aus. Wenn die Funktion ein falsch konfiguriertes Subnetz verwendet, wird eine Fehlermeldung angezeigt. Um dieses Problem zu vermeiden, stelle sicher, dass du für alle Subnetze, die deine Funktion verwendet, dieselbe Konfiguration verwendest.
Um deine benutzerdefinierten Routing-Tabellen einzurichten, führe die folgenden Schritte sowohl für das öffentliche als auch für das private Subnetz aus:
- Erstelle eine benutzerdefinierte Routing-Tabelle. Gib im Feld Name-Tag einen Namen für jede Routing-Tabelle ein, damit du das Subnetz identifizieren kannst, dem sie zugeordnet ist. Verwende beispielsweise das Öffentliche Subnetz und Privates Lambda.
- Ordne die Routing-Tabelle des Subnetzes dem privaten oder öffentlichen Subnetz zu.
- Füge der Routing-Tabelle eine neue Route hinzu, die die folgenden Konfigurationen enthält:
Gib als Destination 0.0.0.0/0 ein.
Wähle als Ziel Internet-Gateway oder NAT-Gateway aus. Wähle für das öffentliche Subnetz die ID des Internet-Gateways aus. Wähle für das private Subnetz die ID des NAT-Gateways aus.
Wichtig: Wenn du eine NAT-Instance anstelle eines NAT-Gateways verwendest, wähle Netzwerkschnittstelle anstelle von NAT-Gateway. - Wähle Routen speichern.
Hinweis: Stelle sicher, dass sich die Routen zu deinem NAT-Gateway im Status Aktiv befinden. Wenn das NAT-Gateway gelöscht wurde und du die Routen nicht aktualisiert hast, haben die Routen den Status Blackhole. Weitere Informationen findest du unter Ein NAT-Gateway löschen.
Überprüfung der Netzwerk-ACL-Konfiguration
Die standardmäßige Netzwerk-Zugriffssteuerungsliste (Netzwerk-ACL) in deiner VPC lässt den gesamten ein- und ausgehenden Datenverkehr zu. Wenn du die Netzwerk-ACL-Regeln änderst, stelle sicher, dass du ausgehende Anforderungen von der Lambda-Funktion zulässt. Stelle außerdem sicher, dass die Netzwerk-ACL den folgenden eingehenden Datenverkehr zulässt:
- Lasse bei privaten Subnetzen, die ein NAT-Gateway verwenden eingehenden Datenverkehr auf den kurzlebigen Ports 1024–65535 zu.
- Lasse bei privaten Subnetzen, die eine NAT-Instance verwenden, eingehenden Datenverkehr auf den kurzlebigen Ports zu, die dein NAT-Instance-Betriebssystem (OS) verwendet.
Weitere Informationen findest du unter Datenschutz im Internetwork-Datenverkehr in Amazon VPC gewährleisten.
Erstellen einer Lambda-Ausführungsrolle
Erstelle eine Lambda-Ausführungsrolle für deine VPC. Aktualisiere dann die Lambda-Funktion, um die neue Lambda-Ausführungsrolle zu verwenden.
Die Lambda-Funktion für die Verbindung mit der PC konfigurieren
Verbinde die Funktion mit der VPC und konfiguriere die folgenden Einstellungen:
- Wähle für Subnetze die privaten Subnetze aus. Identifiziere sie anhand ihrer Subnetz-IDs und -Namen.
- Wähle für Sicherheitsgruppen eine Sicherheitsgruppe aus.
Hinweis: Die Standardsicherheitsgruppe lässt den gesamten ausgehenden Internet-Datenverkehr zu und ist für die meisten Anwendungsfälle ausreichend. Weitere Informationen findest du unter Datenverkehr zu AWS-Ressourcen mithilfe von Sicherheitsgruppen steuern.
Bei Lambda-Funktionen mit einer Amazon VPC-Verbindung kannst du ein Internet-Gateway nur für ausgehenden Datenverkehr verwenden, um auf das Internet zuzugreifen. Weitere Informationen findest du unter IPv6-Support.
Ähnliche Informationen
Behebung von Netzwerkproblemen in Lambda
Wie behebe ich einen ETIMEDOUT-Fehler in meiner Lambda-Funktion?
Lambda-Funktionen Zugriff auf Ressourcen in einer Amazon VPC gewähren
Ähnliche Videos
Relevanter Inhalt
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor einem Jahr
- AWS OFFICIALAktualisiert vor 2 Jahren