Aktivieren Sie den Internetzugang für VPC verbundene Lambda-Funktionen - AWS Lambda

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Aktivieren Sie den Internetzugang für VPC verbundene Lambda-Funktionen

Standardmäßig werden Lambda-Funktionen in einem von Lambda verwalteten System ausgeführtVPC, das über Internetzugang verfügt. Um auf Ressourcen VPC in Ihrem Konto zuzugreifen, können Sie einer Funktion eine VPC Konfiguration hinzufügen. Dadurch wird die Funktion auf die darin enthaltenen Ressourcen beschränktVPC, sofern die nicht VPC über einen Internetzugang verfügt. Auf dieser Seite wird erklärt, wie Sie VPC Internetzugriff auf verbundene Lambda-Funktionen bereitstellen.

Erstelle das VPC

Der VPCCreate-Workflow erstellt alle VPC Ressourcen, die für eine Lambda-Funktion für den Zugriff auf das öffentliche Internet von einem privaten Subnetz aus erforderlich sind, einschließlich Subnetzen, NAT Gateways, Internet-Gateways und Routentabelleneinträgen.

Um das zu erstellen VPC
  1. Öffnen Sie die VPC Amazon-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im Dashboard die Option Erstellen ausVPC.

  3. Wählen Sie unter Zu erstellende Ressourcen die Option VPCund mehr aus.

  4. Konfigurieren Sie die VPC

    1. Geben Sie unter Automatische Generierung von Namenstags einen Namen für das VPC ein.

    2. Für IPv4CIDRBlock können Sie den Standardvorschlag beibehalten oder alternativ den CIDR Block eingeben, der für Ihre Anwendung oder Ihr Netzwerk erforderlich ist.

    3. Wenn Ihre Anwendung über IPv6 Adressen kommuniziert, wählen Sie IPv6CIDRBlock, von Amazon bereitgestellter Block. IPv6 CIDR

  5. Konfiguration der Subnetze

    1. Wählen Sie für Anzahl der Availability Zones 2 aus. AZsFür eine hohe Verfügbarkeit empfehlen wir mindestens zwei.

    2. Wählen Sie für Number of public subnets (Anzahl der öffentlichen Subnetze) 2 aus.

    3. Wählen Sie für Number of private subnets (Anzahl der privaten Subnetze) 2 aus.

    4. Sie können den CIDR Standardblock für das öffentliche Subnetz beibehalten oder alternativ die Option CIDRSubnetzblöcke anpassen erweitern und einen CIDR Block eingeben. Weitere Informationen finden Sie unter CIDRSubnetzblöcke.

  6. Wählen Sie für NATGateways 1 pro AZ aus, um die Ausfallsicherheit zu verbessern.

  7. Wählen Sie für Internet-Gateway nur für ausgehenden Ausgang Ja aus, wenn Sie sich dafür entschieden haben, einen Block einzubeziehen. IPv6 CIDR

  8. Behalten Sie für VPCEndgeräte die Standardeinstellung (S3-Gateway) bei. Für diese Option fallen keine Kosten an. Weitere Informationen finden Sie unter Arten von VPC Endpunkten für Amazon S3.

  9. Behalten Sie für DNSOptionen die Standardeinstellungen bei.

  10. Wählen Sie „Erstellen VPC“.

Konfigurieren der Lambda-Funktion

Um eine zu konfigurierenVPC, wenn Sie eine Funktion erstellen
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie Create function (Funktion erstellen).

  3. Geben Sie unter Basic information (Grundlegende Informationen) bei Function name (Funktionsname) einen Namen für Ihre Funktion ein.

  4. Erweiterten Sie Advanced settings (Erweiterte Einstellungen).

  5. Wählen Sie Aktivieren VPC und dann eine ausVPC.

  6. (Optional) Um ausgehenden IPv6 Datenverkehr zuzulassen, wählen Sie IPv6 Datenverkehr für Dual-Stack-Subnetze zulassen aus.

  7. Wählen Sie für Subnetze alle privaten Subnetze aus. Die privaten Subnetze können über das Gateway auf das Internet zugreifen. NAT Wenn eine Funktion mit einem öffentlichen Subnetz verbunden wird, erhält sie keinen Internetzugang.

    Anmerkung

    Wenn Sie IPv6Traffic für Dual-Stack-Subnetze zulassen ausgewählt haben, müssen alle ausgewählten Subnetze über einen Block und einen IPv4 CIDR Block verfügen. IPv6 CIDR

  8. Wählen Sie unter Sicherheitsgruppen eine Sicherheitsgruppe aus, die ausgehenden Datenverkehr zulässt.

  9. Wählen Sie Funktion erstellen aus.

Lambda erstellt automatisch eine Ausführungsrolle mit der AWSLambdaVPCAccessExecutionRole AWS verwalteten Richtlinie. Die Berechtigungen in dieser Richtlinie sind nur erforderlich, um elastische Netzwerkschnittstellen für die VPC Konfiguration zu erstellen, nicht aber, um Ihre Funktion aufzurufen. Um Berechtigungen mit den geringsten Rechten anzuwenden, können Sie die AWSLambdaVPCAccessExecutionRoleRichtlinie aus Ihrer Ausführungsrolle entfernen, nachdem Sie die Funktion und Konfiguration erstellt haben. VPC Weitere Informationen finden Sie unter Erforderliche Berechtigungen IAM.

Um eine VPC für eine bestehende Funktion zu konfigurieren

Um einer vorhandenen Funktion eine VPC Konfiguration hinzuzufügen, muss die Ausführungsrolle der Funktion über die Berechtigung verfügen, elastische Netzwerkschnittstellen zu erstellen und zu verwalten. Die AWSLambdaVPCAccessExecutionRole AWS verwaltete Richtlinie umfasst die erforderlichen Berechtigungen. Um Berechtigungen mit den geringsten Rechten anzuwenden, können Sie die AWSLambdaVPCAccessExecutionRoleRichtlinie nach dem Erstellen der Konfiguration aus Ihrer Ausführungsrolle entfernen. VPC

  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie die Registerkarte Konfiguration und wählen Sie dann. VPC

  4. Wählen Sie VPCunter Bearbeiten aus.

  5. Wählen Sie dieVPC.

  6. (Optional) Um ausgehenden IPv6 Datenverkehr zuzulassen, wählen Sie IPv6 Datenverkehr für Dual-Stack-Subnetze zulassen aus.

  7. Wählen Sie für Subnetze alle privaten Subnetze aus. Die privaten Subnetze können über das Gateway auf das Internet zugreifen. NAT Wenn eine Funktion mit einem öffentlichen Subnetz verbunden wird, erhält sie keinen Internetzugang.

    Anmerkung

    Wenn Sie IPv6Traffic für Dual-Stack-Subnetze zulassen ausgewählt haben, müssen alle ausgewählten Subnetze über einen Block und einen IPv4 CIDR Block verfügen. IPv6 CIDR

  8. Wählen Sie unter Sicherheitsgruppen eine Sicherheitsgruppe aus, die ausgehenden Datenverkehr zulässt.

  9. Wählen Sie Save (Speichern) aus.

Testen der Funktion

Verwenden Sie den folgenden Beispielcode, um zu bestätigen, dass Ihre Funktion VPC mit -connected auf das öffentliche Internet zugreifen kann. Bei Erfolg gibt der Code einen 200 Statuscode zurück. Wenn dies nicht erfolgreich ist, wird das Zeitlimit für die Funktion überschritten.

Node.js

In diesem Beispiel wird verwendetfetch, was in nodejs18.x und späteren Laufzeiten verfügbar ist.

  1. Fügen Sie im Bereich Codequelle der Lambda-Konsole den folgenden Code in die Datei index.mjs ein. Die Funktion stellt eine HTTP GET Anfrage an einen öffentlichen Endpunkt und gibt den HTTP Antwortcode zurück, um zu testen, ob die Funktion Zugriff auf das öffentliche Internet hat.

    Code-Editor für die Lambda-Konsole.
    Beispiel — HTTP Anfrage mit Async/Await
    const url = "https://aws.amazon.com/"; export const handler = async(event) => { try { // fetch is available with Node.js 18 and later runtimes const res = await fetch(url); console.info("status", res.status); return res.status; } catch (e) { console.error(e); return 500; } };
  2. Wählen Sie Bereitstellen.

  3. Wählen Sie die Registerkarte Test.

    Registerkarte „Test“ der Lambda-Konsole.
  4. Wählen Sie Test aus.

  5. Die Funktion gibt einen 200 Statuscode zurück. Das bedeutet, dass die Funktion über einen ausgehenden Internetzugang verfügt.

    Registerkarte „Test“ der Lambda-Konsole.

    Wenn die Funktion das öffentliche Internet nicht erreichen kann, erhalten Sie eine Fehlermeldung wie die folgende:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }
Python
  1. Fügen Sie im Bereich Codequelle der Lambda-Konsole den folgenden Code in die Datei lambda_function.py ein. Die Funktion stellt eine HTTP GET Anfrage an einen öffentlichen Endpunkt und gibt den HTTP Antwortcode zurück, um zu testen, ob die Funktion Zugriff auf das öffentliche Internet hat.

    Code-Editor für die Lambda-Konsole.
    import urllib.request def lambda_handler(event, context): try: response = urllib.request.urlopen('https://aws.amazon.com') status_code = response.getcode() print('Response Code:', status_code) return status_code except Exception as e: print('Error:', e) raise e
  2. Wählen Sie Bereitstellen.

  3. Wählen Sie die Registerkarte Test.

    Registerkarte „Test“ der Lambda-Konsole.
  4. Wählen Sie Test aus.

  5. Die Funktion gibt einen 200 Statuscode zurück. Das bedeutet, dass die Funktion über einen ausgehenden Internetzugang verfügt.

    Registerkarte „Test“ der Lambda-Konsole.

    Wenn die Funktion das öffentliche Internet nicht erreichen kann, erhalten Sie eine Fehlermeldung wie die folgende:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }

Wenn Sie bereits eine haben, VPC aber den öffentlichen Internetzugang für eine Lambda-Funktion konfigurieren müssen, gehen Sie wie folgt vor. Bei diesem Verfahren wird davon ausgegangen, dass Ihr VPC über mindestens zwei Subnetze verfügt. Wenn Sie nicht über zwei Subnetze verfügen, finden Sie weitere Informationen unter Erstellen eines Subnetzes im VPCAmazon-Benutzerhandbuch.

Überprüfen Sie die Konfiguration der Routing-Tabelle

  1. Öffnen Sie die VPC Amazon-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie die VPCID.

    VPCKonsolenliste vonVPCs.
  3. Scrollen Sie nach unten zum Abschnitt Ressourcenübersicht. Beachten Sie die Zuordnungen der Routentabellen. Öffnen Sie jede Routing-Tabelle, die einem Subnetz zugeordnet ist.

    VPCAbschnitt mit der Ressourcenzuweisung in der Konsole
  4. Scrollen Sie nach unten zur Registerkarte Routen. Überprüfen Sie die Routen, um festzustellen, ob eine der folgenden Bedingungen zutrifft. Jede dieser Anforderungen muss durch eine separate Routentabelle erfüllt werden.

    • Internetdatenverkehr (0.0.0.0/0fürIPv4, ::/0 fürIPv6) wird an ein Internet-Gateway () weitergeleitet. igw-xxxxxxxxxx Das bedeutet, dass das der Routing-Tabelle zugeordnete Subnetz ein öffentliches Subnetz ist.

      Anmerkung

      Wenn Ihr Subnetz keinen IPv6 CIDR Block hat, sehen Sie nur die IPv4 Route (). 0.0.0.0/0

      Beispiel öffentliche Subnetz-Routing-Tabelle
      Routingtabelle für öffentliche Subnetze mit Route zum Internet-Gateway
    • Internetgebundener Datenverkehr für IPv4 (0.0.0.0/0) wird an ein NAT Gateway (nat-xxxxxxxxxx) weitergeleitet, das einem öffentlichen Subnetz zugeordnet ist. Das bedeutet, dass das Subnetz ein privates Subnetz ist, das über das Gateway auf das Internet zugreifen kann. NAT

      Anmerkung

      Wenn Ihr Subnetz über einen IPv6 CIDR Block verfügt, muss die Routing-Tabelle auch internetgebundenen IPv6 Verkehr (::/0) an ein Internet-Gateway () weiterleiten, das nur für ausgehenden Datenverkehr bestimmt ist. eigw-xxxxxxxxxx Wenn Ihr Subnetz keinen IPv6 CIDR Block hat, sehen Sie nur die Route (). IPv4 0.0.0.0/0

      Beispiel private Subnetz-Routentabelle
      Routingtabelle für private Subnetze mit Route zum Gateway NAT
  5. Wiederholen Sie den vorherigen Schritt, bis Sie alle Routing-Tabellen überprüft haben, die einem Subnetz in Ihrem Netzwerk zugeordnet sind, VPC und bestätigt haben, dass Sie über eine Routing-Tabelle mit einem Internet-Gateway und eine Routing-Tabelle mit einem NAT Gateway verfügen.

    Wenn Sie nicht über zwei Routentabellen verfügen, eine mit einer Route zu einem Internet-Gateway und eine mit einer Route zu einem NAT Gateway, gehen Sie wie folgt vor, um die fehlenden Ressourcen und Routentabelleneinträge zu erstellen.

Gehen Sie wie folgt vor, um eine Routing-Tabelle zu erstellen und sie einem Subnetz zuzuordnen.

Um eine benutzerdefinierte Routing-Tabelle mit der VPC Amazon-Konsole zu erstellen
  1. Öffnen Sie die VPC Amazon-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im Navigationsbereich Route Tables (Routing-Tabellen) aus.

  3. Klicken Sie auf Create Route Table (Routing-Tabelle erstellen).

  4. (Optional) Geben Sie bei Name einen Namen für Ihre Routing-Tabelle ein.

  5. Für VPC, wählen Sie IhreVPC.

  6. (Optional) Sie fügen ein Tag hinzu, indem Sie Add new tag (Neuen Tag hinzufügen) auswählen und den Tag-Schlüssel und -Wert eingeben.

  7. Klicken Sie auf Create Route Table (Routing-Tabelle erstellen).

  8. Wählen Sie auf der Registerkarte Subnet associations (Subnetzzuordnungen) die Option Edit subnet associations (Subnetzzuordnungen bearbeiten) aus.

    Verbinden Sie das Internet-Gateway mit VPC
  9. Aktivieren Sie das Kontrollkästchen für das Subnetz, um es der Routing-Tabelle zuzuordnen.

  10. Klicken Sie auf Save associations (Zuordnungen speichern).

Gehen Sie wie folgt vor, um ein Internet-Gateway zu erstellen, es an Ihr VPC anzuhängen und es der Routing-Tabelle Ihres öffentlichen Subnetzes hinzuzufügen.

So erstellen Sie ein Internet-Gateway
  1. Öffnen Sie die VPC Amazon-Konsole unter https://console.aws.amazon.com/vpc/.

  2. Wählen Sie im Navigationsbereich Internet Gateways (Internet-Gateways) aus.

  3. Wählen Sie Create internet gateway (Internet-Gateway erstellen) aus.

  4. (Optional) Geben Sie einen Namen für Ihr Internet-Gateway ein.

  5. (Optional) Um ein Tag hinzuzufügen, wählen Sie Add new tag (Neuen Tag hinzufügen) aus und geben Sie den Schlüssel und den Wert für den Tag ein.

  6. Wählen Sie Create internet gateway (Internet-Gateway erstellen) aus.

  7. Wählen Sie im Banner oben auf dem Bildschirm die Option Attach to a VPC aus, wählen Sie ein verfügbares VPC und wählen Sie dann Attach Internet Gateway aus.

    Verbinden Sie das Internet-Gateway mit VPC
  8. Wählen Sie die VPCID.

    Seite mit den Details zum Internet-Gateway
  9. Wählen Sie die VPCID erneut aus, um die VPC Detailseite zu öffnen.

    Gefilterte VPC Liste in Amazon VPC Console
  10. Scrollen Sie nach unten zum Abschnitt Ressourcenübersicht und wählen Sie dann ein Subnetz aus. Die Subnetzdetails werden auf einer neuen Registerkarte angezeigt.

    VPCRessourcenübersicht der Konsole mit Liste der Subnetze.
  11. Wählen Sie den Link unter Routentabelle aus.

    Link zur Routing-Tabelle auf der Seite mit den Subnetzdetails
  12. Wählen Sie die Routentabellen-ID, um die Detailseite der Routing-Tabelle zu öffnen.

    Liste der gefilterten Routentabellen
  13. Wählen Sie unter Routen die Option Routen bearbeiten aus.

    Routenliste mit der Schaltfläche „Routen bearbeiten“
  14. Wählen Sie Route hinzufügen und geben Sie sie dann 0.0.0.0/0 in das Feld Ziel ein.

    Fügen Sie ein Ziel für eine neue Route hinzu
  15. Wählen Sie für Target Internet-Gateway und dann das Internet-Gateway aus, das Sie zuvor erstellt haben. Wenn Ihr Subnetz über einen IPv6 CIDR Block verfügt, müssen Sie auch eine Route für ::/0 dasselbe Internet-Gateway hinzufügen.

    Ziel für eine neue Route hinzufügen
  16. Wählen Sie Änderungen speichern.

Gehen Sie wie folgt vor, um ein NAT Gateway zu erstellen, es einem öffentlichen Subnetz zuzuordnen und es dann der Routing-Tabelle Ihres privaten Subnetzes hinzuzufügen.

Um ein NAT Gateway zu erstellen und es einem öffentlichen Subnetz zuzuordnen
  1. Wählen Sie im Navigationsbereich NATGateways aus.

  2. Wählen Sie NATGateway erstellen aus.

  3. (Optional) Geben Sie einen Namen für Ihr NAT Gateway ein.

  4. Wählen Sie für Subnetz ein öffentliches Subnetz in Ihrem. VPC (Ein öffentliches Subnetz ist ein Subnetz, dessen Routing-Tabelle eine direkte Route zu einem Internet-Gateway enthält.)

    Anmerkung

    NATGateways sind einem öffentlichen Subnetz zugeordnet, aber der Eintrag in der Routing-Tabelle befindet sich im privaten Subnetz.

  5. Wählen Sie für Elastic IP Allocation ID eine Elastic IP Address aus oder wählen Sie Allocate Elastic IP.

  6. Wählen Sie Create NAT Gateway aus.

Um eine Route zum NAT Gateway in der Routentabelle des privaten Subnetzes hinzuzufügen
  1. Wählen Sie im Navigationsbereich Subnetze aus.

  2. Wählen Sie ein privates Subnetz in Ihrem. VPC (Ein privates Subnetz ist ein Subnetz, dessen Routing-Tabelle keine Route zu einem Internet-Gateway enthält.)

  3. Wählen Sie den Link unter Routentabelle aus.

    Link zur Routing-Tabelle auf der Seite mit den Subnetzdetails
  4. Wählen Sie die Routentabellen-ID, um die Detailseite der Routing-Tabelle zu öffnen.

    Liste der gefilterten Routentabellen
  5. Scrollen Sie nach unten und wählen Sie die Registerkarte Routen und dann Routen bearbeiten

    Registerkarte „Routen“ auf der Detailseite der Routentabelle
  6. Wählen Sie Route hinzufügen und geben Sie sie dann 0.0.0.0/0 in das Feld Ziel ein.

    Fügen Sie ein Ziel für eine neue Route hinzu
  7. Wählen Sie für Target NAT Gateway und dann das NAT Gateway aus, das Sie zuvor erstellt haben.

    Fügen Sie ein Ziel für eine neue Route hinzu
  8. Wählen Sie Änderungen speichern.

Gehen Sie wie folgt vor, um ein Internet-Gateway nur für ausgehenden Datenverkehr zu erstellen und es der Routing-Tabelle Ihres privaten Subnetzes hinzuzufügen.

So erstellen Sie ein Internet-Gateway nur für ausgehenden Verkehr
  1. Wählen Sie im Navigationsbereich Internet-Gateways für ausgehenden Datenverkehr.

  2. Klicken Sie auf Internet-Gateway für ausgehenden Datenverkehr erstellen.

  3. (Optional) Geben Sie einen Namen ein.

  4. Wählen Sie den aus, VPC in dem das Internet-Gateway nur für ausgehenden Datenverkehr erstellt werden soll.

  5. Klicken Sie auf Internet-Gateway für ausgehenden Datenverkehr erstellen.

  6. Wählen Sie den Link unter Angehängte ID aus. VPC

    Detailseite für Internet-Gateways nur für ausgehenden Datenverkehr
  7. Wählen Sie den Link unter VPCID, um die Detailseite zu öffnen. VPC

  8. Scrollen Sie nach unten zum Abschnitt Ressourcenübersicht und wählen Sie dann ein privates Subnetz aus. (Ein privates Subnetz ist ein Subnetz, dessen Routing-Tabelle keine Route zu einem Internet-Gateway enthält.) Die Subnetzdetails werden auf einer neuen Registerkarte angezeigt.

    VPCRessourcenübersicht der Konsole mit Liste der Subnetze.
  9. Wählen Sie den Link unter Routentabelle aus.

    Link zur Routing-Tabelle auf der Seite mit den Subnetzdetails
  10. Wählen Sie die Routentabellen-ID, um die Detailseite der Routing-Tabelle zu öffnen.

    Liste der gefilterten Routentabellen
  11. Wählen Sie unter Routen die Option Routen bearbeiten aus.

    Routenliste mit der Schaltfläche „Routen bearbeiten“
  12. Wählen Sie Route hinzufügen und geben Sie sie dann ::/0 in das Feld Ziel ein.

    Fügen Sie ein Ziel für eine neue Route hinzu
  13. Wählen Sie für Target die Option Internet Gateway Only Egress Only und dann das Gateway aus, das Sie zuvor erstellt haben.

    Ziel für neue Route hinzufügen
  14. Wählen Sie Änderungen speichern.

Konfigurieren der Lambda-Funktion

Um eine zu konfigurierenVPC, wenn Sie eine Funktion erstellen
  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie Create function (Funktion erstellen).

  3. Geben Sie unter Basic information (Grundlegende Informationen) bei Function name (Funktionsname) einen Namen für Ihre Funktion ein.

  4. Erweiterten Sie Advanced settings (Erweiterte Einstellungen).

  5. Wählen Sie Aktivieren VPC und dann eine ausVPC.

  6. (Optional) Um ausgehenden IPv6 Datenverkehr zuzulassen, wählen Sie IPv6 Datenverkehr für Dual-Stack-Subnetze zulassen aus.

  7. Wählen Sie für Subnetze alle privaten Subnetze aus. Die privaten Subnetze können über das Gateway auf das Internet zugreifen. NAT Wenn eine Funktion mit einem öffentlichen Subnetz verbunden wird, erhält sie keinen Internetzugang.

    Anmerkung

    Wenn Sie IPv6Traffic für Dual-Stack-Subnetze zulassen ausgewählt haben, müssen alle ausgewählten Subnetze über einen Block und einen IPv4 CIDR Block verfügen. IPv6 CIDR

  8. Wählen Sie unter Sicherheitsgruppen eine Sicherheitsgruppe aus, die ausgehenden Datenverkehr zulässt.

  9. Wählen Sie Funktion erstellen aus.

Lambda erstellt automatisch eine Ausführungsrolle mit der AWSLambdaVPCAccessExecutionRole AWS verwalteten Richtlinie. Die Berechtigungen in dieser Richtlinie sind nur erforderlich, um elastische Netzwerkschnittstellen für die VPC Konfiguration zu erstellen, nicht aber, um Ihre Funktion aufzurufen. Um Berechtigungen mit den geringsten Rechten anzuwenden, können Sie die AWSLambdaVPCAccessExecutionRoleRichtlinie aus Ihrer Ausführungsrolle entfernen, nachdem Sie die Funktion und Konfiguration erstellt haben. VPC Weitere Informationen finden Sie unter Erforderliche Berechtigungen IAM.

Um eine VPC für eine bestehende Funktion zu konfigurieren

Um einer vorhandenen Funktion eine VPC Konfiguration hinzuzufügen, muss die Ausführungsrolle der Funktion über die Berechtigung verfügen, elastische Netzwerkschnittstellen zu erstellen und zu verwalten. Die AWSLambdaVPCAccessExecutionRole AWS verwaltete Richtlinie umfasst die erforderlichen Berechtigungen. Um Berechtigungen mit den geringsten Rechten anzuwenden, können Sie die AWSLambdaVPCAccessExecutionRoleRichtlinie nach dem Erstellen der Konfiguration aus Ihrer Ausführungsrolle entfernen. VPC

  1. Öffnen Sie die Seite Funktionen der Lambda-Konsole.

  2. Wählen Sie eine Funktion aus.

  3. Wählen Sie die Registerkarte Konfiguration und wählen Sie dann. VPC

  4. Wählen Sie VPCunter Bearbeiten aus.

  5. Wählen Sie dieVPC.

  6. (Optional) Um ausgehenden IPv6 Datenverkehr zuzulassen, wählen Sie IPv6 Datenverkehr für Dual-Stack-Subnetze zulassen aus.

  7. Wählen Sie für Subnetze alle privaten Subnetze aus. Die privaten Subnetze können über das Gateway auf das Internet zugreifen. NAT Wenn eine Funktion mit einem öffentlichen Subnetz verbunden wird, erhält sie keinen Internetzugang.

    Anmerkung

    Wenn Sie IPv6Traffic für Dual-Stack-Subnetze zulassen ausgewählt haben, müssen alle ausgewählten Subnetze über einen Block und einen IPv4 CIDR Block verfügen. IPv6 CIDR

  8. Wählen Sie unter Sicherheitsgruppen eine Sicherheitsgruppe aus, die ausgehenden Datenverkehr zulässt.

  9. Wählen Sie Save (Speichern) aus.

Testen der Funktion

Verwenden Sie den folgenden Beispielcode, um zu bestätigen, dass Ihre Funktion VPC mit -connected auf das öffentliche Internet zugreifen kann. Bei Erfolg gibt der Code einen 200 Statuscode zurück. Wenn dies nicht erfolgreich ist, wird das Zeitlimit für die Funktion überschritten.

Node.js

In diesem Beispiel wird verwendetfetch, was in nodejs18.x und späteren Laufzeiten verfügbar ist.

  1. Fügen Sie im Bereich Codequelle der Lambda-Konsole den folgenden Code in die Datei index.mjs ein. Die Funktion stellt eine HTTP GET Anfrage an einen öffentlichen Endpunkt und gibt den HTTP Antwortcode zurück, um zu testen, ob die Funktion Zugriff auf das öffentliche Internet hat.

    Code-Editor für die Lambda-Konsole.
    Beispiel — HTTP Anfrage mit Async/Await
    const url = "https://aws.amazon.com/"; export const handler = async(event) => { try { // fetch is available with Node.js 18 and later runtimes const res = await fetch(url); console.info("status", res.status); return res.status; } catch (e) { console.error(e); return 500; } };
  2. Wählen Sie Bereitstellen.

  3. Wählen Sie die Registerkarte Test.

    Registerkarte „Test“ der Lambda-Konsole.
  4. Wählen Sie Test aus.

  5. Die Funktion gibt einen 200 Statuscode zurück. Das bedeutet, dass die Funktion über einen ausgehenden Internetzugang verfügt.

    Registerkarte „Test“ der Lambda-Konsole.

    Wenn die Funktion das öffentliche Internet nicht erreichen kann, erhalten Sie eine Fehlermeldung wie die folgende:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }
Python
  1. Fügen Sie im Bereich Codequelle der Lambda-Konsole den folgenden Code in die Datei lambda_function.py ein. Die Funktion stellt eine HTTP GET Anfrage an einen öffentlichen Endpunkt und gibt den HTTP Antwortcode zurück, um zu testen, ob die Funktion Zugriff auf das öffentliche Internet hat.

    Code-Editor für die Lambda-Konsole.
    import urllib.request def lambda_handler(event, context): try: response = urllib.request.urlopen('https://aws.amazon.com') status_code = response.getcode() print('Response Code:', status_code) return status_code except Exception as e: print('Error:', e) raise e
  2. Wählen Sie Bereitstellen.

  3. Wählen Sie die Registerkarte Test.

    Registerkarte „Test“ der Lambda-Konsole.
  4. Wählen Sie Test aus.

  5. Die Funktion gibt einen 200 Statuscode zurück. Das bedeutet, dass die Funktion über einen ausgehenden Internetzugang verfügt.

    Registerkarte „Test“ der Lambda-Konsole.

    Wenn die Funktion das öffentliche Internet nicht erreichen kann, erhalten Sie eine Fehlermeldung wie die folgende:

    { "errorMessage": "2024-04-11T17:22:20.857Z abe12jlc-640a-8157-0249-9be825c2y110 Task timed out after 3.01 seconds" }