Wie gebe ich einer Lambda-Funktion, die mit einer Amazon VPC verbunden ist, Internetzugriff?

Lesedauer: 4 Minute
0

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:

  1. 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.
  2. Ordne die Routing-Tabelle des Subnetzes dem privaten oder öffentlichen Subnetz zu.
  3. 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.
  4. 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:

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 Zeitüberschreitungs-Probleme mit einer Lambda-Funktion, die sich in einer Amazon VPC befindet?

Wie behebe ich einen ETIMEDOUT-Fehler in meiner Lambda-Funktion?

Lambda-Funktionen Zugriff auf Ressourcen in einer Amazon VPC gewähren

Wie behebe ich Lambda-Funktionsfehler?

AWS OFFICIAL
AWS OFFICIALAktualisiert vor 3 Monaten