Direkt zum Inhalt

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

Lesedauer: 5 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. Selbst wenn du eine Lambda-Funktion mit einem öffentlichen Subnetz verknüpfst, kann sie keine Verbindung zum Internet herstellen, da die Funktion eine private IP-Adresse hat.

Um der Lambda-Funktion Internetzugriff auf Ressourcen in einer VPC im AWS-Konto zu gewähren, füge ein NAT-Gateway oder eine NAT-Instance hinzu. Die Konfiguration beschränkt die Funktion auf Ressourcen innerhalb der VPC, es sei denn, die VPC hat Internetzugrifff.

Hinweis: Du kannst VPC-Endpunkte der Schnittstelle verwenden, um über eine Amazon VPC-Verbindung ohne Internetzugriff eine Verbindung zu unterstützten AWS-Services herzustellen.

Lösung

Überprüfe, dass die folgenden Ressourcen ausgehenden Internetzugriff für die Lambda-Funktion zulassen:

Wenn eine der zuvor genannten Ressourcen der Lambda-Funktion keinen Internetzugriff gewährt, konfiguriere die Ressource neu, um der Funktion Internetzugriff zu gewähren. Du kannst AWSSupport-TroubleshootLambdaInternetAccess ausführen oder den Zugriff auf das Internet manuell gewähren.

Das AWSSupport-TroubleshootLambdaInternetAccess-Runbook verwenden

Voraussetzung

Bevor du das Runbook startest, stelle sicher, dass die AWS Identify- und Access Management (IAM)-Benutzer oder die Rolle über die erforderlichen Berechtigungen verfügt. Weitere Informationen findest du im Abschnitt Erforderliche IAM-Berechtigungen von AWSSupport-TroubleshootLambdaInternetAccess.

Führe die folgenden Schritte aus:

  1. Öffne die Systems Manager-Konsole.
  2. Erweitere im Navigationsbereich die Option Tools für das Änderungsmanagement und wähle dann Automatisierung.
  3. Wähle Runbook ausführen.
  4. Wähle die Registerkarte Eigentum von Amazon und suche dann nach TroubleshootLambdaInternetAccess.
  5. Wähle das Symbol für die Karte AWSSupport-TroubleshootLambdaInternetAccess-Karte.
    Hinweis: Wählen Sie nicht den Namen der Automatisierung.
  6. Wähle Weiter.
  7. Wähle Ausführen.

Überprüfe die Ausgabe des Runbooks, um festzustellen, warum die Lambda-Funktion den Zugriff auf das Internet verloren hat und wie du das Problem lösen kannst.

Internetzugriff manuell gewähren

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. Dann, hänge es an die 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.

(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, erhältst du eine Fehlermeldung. Um dieses Problem zu vermeiden, stelle sicher, dass du für alle Subnetze, die deine Funktion verwendet, dieselbe Konfiguration verwendest.

Gehe wie folgt vor, um die benutzerdefinierten Routing-Tabellen einzurichten:

  1. Erstelle eine Routing-Tabelle für das öffentliche Subnetz und eine für das private Subnetz.
    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 privaten und öffentlichen Subnetze den Routing-Tabellen zu.
  3. Füge den Routing-Tabellen eine neue Route hinzu, die die folgenden Konfigurationen enthält:
    Gib als Destination 0.0.0.0/0 ein.
    Wähle für Ziel Internet-Gateway für das öffentliche Subnetz und gib die Internet-Gateway-ID ein. Wähle NAT-Gateway für das private Subnetz und gib die NAT-Gateway-ID ein.
    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 du das NAT-Gateway löscht und du die Routen nicht aktualisierst, haben die Routen den Status Blackhole.

Überprüfung der Netzwerk-ACL-Konfiguration

Die Standard-Netzwerk-ACL in der VPC lässt den gesamten eingehenden 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 einem privaten Subnetz, das ein NAT-Gateway verwendet eingehenden Datenverkehr auf den kurzlebigen Ports 1024–65535 zu.
  • Lasse bei einem privaten Subnetz, die eine NAT-Instance verwendet, 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

Hänge die Funktion an die VPC an. Wähle für Subnetze das private Subnetz aus. 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 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?