View a markdown version of this page

Eine Lambda-Webfunktion erstellen - 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.

Eine Lambda-Webfunktion erstellen

Um eine App mit Lambda Web Functions bereitzustellen, erstellen Sie eine Webfunktion mit einer Revision und einem Endpunkt für den Empfang von Traffic. Die Konsole und der aws lambda-web deploy Befehl können die Webfunktion, ihre erste Revision und ihren ersten Endpunkt erstellen. Revisionen sind unveränderliche Schnappschüsse Ihres Codes und Ihrer Konfiguration. Ein Endpunkt leitet Anfragen an eine aktive Revision weiter. Weitere Informationen zu diesen Ressourcen finden Sie unter Schlüsselkonzepte. In diesem Thema wird gezeigt, wie Sie sie mithilfe der Lambda-Konsole und der AWS CLI erstellen.

Voraussetzungen

Stellen Sie vor dem Beginn sicher, dass Sie über das Folgende verfügen:

  • Ein AWS Konto. Informationen zur Erstellung eines Kontos finden Sie im Referenzhandbuch zur AWS Kontoverwaltung unter Vergleich der Anmeldeoptionen.

  • Berechtigungen zur Verwaltung von Webfunktionen, zur Übergabe der Ausführungsrolle an Lambda (iam:PassRole) und zur Erstellung oder Verwendung der unterstützenden Amazon S3- und IAM-Ressourcen.

Die Konsole erstellt oder verwendet die Ressourcen, die Ihre Web Function benötigt, einschließlich einer Ausführungsrolle und eines Amazon S3 S3-Buckets für Ihren Code.

Um dem AWS CLI Verfahren zu folgen, benötigen Sie außerdem:

  • AWS CLI Version 2, in einer Version, die die aws lambda-web Befehle enthält. Um dies zu überprüfen, führen Sie es ausaws lambda-web help. Wenn Sie das AWS CLI mit einem offiziellen Installationsprogramm oder Installationsskript installiert haben, führen Sie es aus, aws update um auf die neueste Version zu aktualisieren. Andernfalls finden Sie weitere Informationen unter Installation oder Aktualisierung auf die neueste Version von AWS CLI.

  • AWS Anmeldeinformationen und eine für die AWS-Region konfigurierte AWS CLI.

  • Für die aws lambda-web deploy Berechtigung zum Aufrufensts:GetCallerIdentity, für s3:ListBucket den Deployment-Bucket und s3:PutObjects3:GetObject,, und s3:GetObjectVersion für seine Objekte.

  • Es aws lambda-web deploy erstellt die Standardressourcen, die iam:GetRole iam:CreateRole Aufrufrechteiam:PutRolePolicy,s3:CreateBucket,,s3:PutBucketPolicy, unds3:PutBucketVersioning.

  • (Optional) Node.js 24 oder später für die lokale Entwicklung. Informationen zur Installation Node.js finden Sie Node.js auf der Node.js Website unter Herunterladen.

Eine Webfunktion (Konsole) erstellen

Verwenden Sie die Lambda-Konsole, um eine Webfunktion, ihre erste Version und ihren ersten Endpunkt für den Empfang von Traffic zu erstellen.

Um eine Webfunktion und einen Endpunkt (Konsole) zu erstellen
  1. Öffnen Sie die Lambda-Konsole unter https://console.aws.amazon.com/lambda/.

  2. Wählen Sie im Navigationsbereich Web Functions aus.

  3. Wählen Sie Webfunktion erstellen.

  4. Führen Sie unter Basic information (Grundlegende Informationen) die folgenden Schritte aus:

    1. Geben Sie unter Funktionsname einen Namen für Ihre Webfunktion ein.

    2. Behalten Sie für Runtime die Standard-Runtime bei.

    3. Behalten Sie für die Codequelle die Vorlage Hello World bei, um mit einer vorkonfigurierten Beispielanwendung zu beginnen. Um stattdessen Ihren eigenen Code bereitzustellen, wählen Sie ZIP-Datei hochladen oder Amazon S3.

  5. Gehen Sie unter Endpunktkonfiguration wie folgt vor:

    1. Geben Sie unter Endpunktname einen Namen für den Endpunkt ein.

    2. Behalten Sie für Typ den Wert bei Home-Region. Ein Home-Region Endpunkt wird in einer einzigen Region ausgeführt, was dies zur einfachsten Konfiguration für Ihre erste Web-Funktion macht. Informationen zu Optionen für mehrere Regionen finden Sie unterEndpunkte für Lambda-Webfunktionen.

      Anmerkung

      Sie können den Endpunkttyp nach der Erstellung nicht ändern.

    3. Wählen Sie als Authentifizierungstyp die Option Application-managed Authentifizierung aus. Mit dieser Option leitet Lambda alle Anfragen an Ihre App weiter, sodass Ihre App die Authentifizierung übernimmt. Um stattdessen den Zugriff einzuschränken, wählen Sie die IAM-Authentifizierung, bei der Anrufer Anfragen signieren müssen. Anfragen an HomeRegion und PerRegion Endpunkte verwenden AWS Signature Version 4 (Sigv4). Anfragen an MultiRegion Endpunkte verwenden Signature Version 4a (SigV4a). Weitere Informationen finden Sie unter Endpunktzugriffskontrolle mit Lambda Web Function.

    4. Behalten Sie für die automatische Bereitstellung die neueste Version bei. In diesem Modus leitet Lambda den gesamten Datenverkehr automatisch an jede neue Revision weiter, sobald sie aktiv wird. Wählen Sie für die manuelle Datenverkehrskontrolle mit Revisionsgewichten die Option Deaktiviert. Weitere Informationen finden Sie unter Bereitstellungsmuster.

  6. (Optional) Erweitern Sie Zusätzliche Konfigurationen, um die Standardeinstellungen zu überschreiben. Standardmäßig erstellt Lambda eine Ausführungsrolle mit der Berechtigung zum Hochladen von Protokollen auf Amazon und einen Amazon S3 S3-Bucket in Ihrem Konto CloudWatch, um Ihren Code zu speichern. In diesem Abschnitt können Sie stattdessen eine bestehende IAM-Rolle oder Ihren eigenen Amazon S3 S3-Bucket auswählen. Außerdem können Sie die Verschlüsselung mit einem vom Kunden verwalteten Schlüssel, der maximalen Parallelität pro Umgebung, Umgebungsvariablen und Tags konfigurieren.

  7. Wählen Sie Webfunktion erstellen.

Wenn Sie Create Web Function wählen, erstellt Lambda die Web Function-Ressource zusammen mit ihrer ersten Revision und gleichzeitig den Endpunkt. Die Revision beginnt im Status Ausstehend, während Lambda Ihren Code herunterlädt und daraus ein Codeartefakt vorbereitet und dann in den Status Aktiv übergeht. Der Endpunkt startet außerdem im Status Ausstehend. Die Web-Funktion, ihre Revision und ihr Endpunkt durchlaufen diese Zustände jeweils unabhängig voneinander. Weitere Informationen zu Revisionen und Lebenszyklusstatus finden Sie unterSchlüsselkonzepte.

Der Endpunkt beginnt mit der Bereitstellung von Datenverkehr, wenn er den Status Aktiv erreicht und es eine aktive Version gibt, an die er weitergeleitet werden kann. Um den Domainnamen des Endpunkts zu finden, wählen Sie auf der Seite mit den Funktionsdetails die Registerkarte Endpoints und dann den Endpoint aus. Um die App auf Ihrer eigenen Domain bereitzustellen, stellen Sie eine CloudFront Amazon-Distribution vor den Endpunkt. Weitere Informationen zu Endpunkttypen und Domainnamen finden Sie unterEndpunkte für Lambda-Webfunktionen.

Um zu bestätigen, dass Ihre App Traffic bereitstellt, senden Sie eine Anfrage an den Domainnamen. Da Sie sich für die Application-managed Authentifizierung entschieden haben, können Sie eine einfache Anfrage senden, ohne sie zu signieren.

curl https://your-endpoint-domain-name/

Eine erfolgreiche Antwort bedeutet, dass Ihre Webfunktion Traffic empfängt und Ihre App Anfragen bearbeitet.

Eine Webfunktion erstellen (AWS CLI)

Erstellen und implementieren Sie eine Webfunktion von Ihrem Terminal aus. Der Startbefehl generiert einen kleinen Node.js HTTP-Server, stellt ihn bereit und gibt eine HTTPS-Endpunkt-URL zurück.

Stellen Sie Ihre Webfunktion bereit und testen Sie sie

Um eine Starter-Webfunktion bereitzustellen und zu testen
  1. Führen Sie den folgenden Befehl aus:

    aws lambda-web deploy --name my-web-app --hello-world

    --hello-worldschreibt die Startdateien in ./my-web-app und erstellt das Verzeichnis, falls es nicht existiert. Der Starter enthältserver.ts, einen TypeScript HTTP-Server undpackage.json,README.md, undAGENTS.md.

  2. Wenn die Bereitstellung abgeschlossen ist, kopieren Sie die Endpunkt-URL aus der Ausgabe. Die URL sieht etwa wie folgt aus:

    https://bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws
  3. Senden Sie eine Anfrage an die Endpunkt-URL, die Sie im vorherigen Schritt kopiert haben. endpoint-urlDurch diese URL ersetzen:

    curl endpoint-url

    Der Starter gibt eine Antwort zurück, die der folgenden ähnelt:

    {"message":"Hello from Lambda Web!","path":"/"}

Standardmäßig akzeptiert der Starter-Endpunkt Anfragen ohne Authentifizierung. Um eine IAM-Autorisierung zu verlangen, fügen Sie hinzu--auth-type IamAuth. Informationen zur Steuerung des Zugriffs auf Ihren Endpunkt finden Sie unterEndpunktzugriffskontrolle mit Lambda Web Function.

Was der Befehl erzeugt

Bei der ersten Bereitstellung lautet der Befehl:

  • Erstellt einen Amazon S3 S3-Bucket mit aktivierter Versionierung für Bereitstellungspakete oder verwendet ihn erneut.

  • Erstellt eine IAM-Ausführungsrolle mit Amazon CloudWatch Logs-Berechtigungen oder verwendet sie erneut.

  • Erstellt die Web-Funktion und ihre erste Revision.

  • Erzeugt einen HomeRegion Endpunkt mit dem Namen dev und wartet darauf, dass er wirdActive. Um einen anderen Namen zu verwenden, fügen Sie hinzu--endpoint-name.

Eine Webfunktion enthält unveränderliche Versionen Ihres Codes und Ihrer Konfiguration. Bei späteren Bereitstellungen erstellt der Befehl eine weitere Revision. Der dev Endpunkt verwendet den LatestRevision Modus und stellt die Revision bereit, nachdem er aktiv geworden ist.

Stellen Sie eine Änderung bereit

Nachdem Sie die Starter-Anwendung bearbeitet haben, führen Sie Folgendes aus:

aws lambda-web deploy \ --name my-web-app \ --code ./my-web-app

Wenn Sie diesen Befehl ausführen, wird Ihr aktualisiertes Paket hochgeladen, eine Revision erstellt und es wird darauf gewartet, dass die neue Version erscheint. Active Der dev Endpunkt ist auf Revision autoDeploymentMode eingestellt LatestRevision und stellt die Revision automatisch bereit. Die URL bleibt dieselbe.

Um Ihre eigene App anstelle des Starters bereitzustellen, übergeben Sie das zugehörige Verzeichnis an--code. Ihr Server muss den Host und den Port in der AWS_LAMBDA_HTTP_ENDPOINT Umgebungsvariablen abhören. Standardmäßig wird die Runtime index.js im Stammverzeichnis des Bereitstellungspakets geladen. Um eine andere Eintragsdatei zu verwenden, legen Sie die AWS_LAMBDA_NODEJS_ENTRYPOINT Umgebungsvariable fest. Lambda überprüft nicht, ob Ihr Server bei der Erstellung der Revision zuhört. Daher können die Revision und der Endpunkt auch dann angezeigt werden, Active wenn Anfragen fehlschlagen. Weitere Informationen finden Sie unter Laufzeiten der Lambda-Webfunktion.

Bestehende verwenden AWS Ressourcen

Wenn Sie bereits einen Amazon S3 S3-Bucket oder eine IAM-Ausführungsrolle verwalten, verwenden Sie den folgenden Befehl, um diese Ressourcen wiederzuverwenden, anstatt Standardwerte zu erstellen. Für den Bucket muss die Versionierung aktiviert sein und eine Bucket-Richtlinie, die dem Lambda-Service Principal (lambda.amazonaws.com) s3:GetObject und gewährt. s3:GetObjectVersion Der Befehl ändert nicht die Konfiguration eines von Ihnen angegebenen Buckets. Informationen zu den Bucket-Anforderungen finden Sie unterBucket-Richtlinie für Lambda. Ersetzen Sie die Beispiel-Ressourcenwerte durch Ihre eigenen.

aws lambda-web deploy \ --name my-web-app \ --code ./my-web-app \ --bucket-name amzn-s3-demo-bucket \ --execution-role-arn arn:aws:iam::111122223333:role/my-web-app-execution-role

Die Ausführungsrolle muss es Lambda ermöglichen, sie zu übernehmen, und sie muss die Berechtigungen gewähren, die Ihre Anwendung benötigt. Weitere Informationen finden Sie unter Rolle „Ausführung“.

Sie können beide Ressourcenoptionen weglassen, um Standardwerte deploy erstellen zu lassen. Wenn eine Webfunktion ohne --hello-world Endpunkt deploy erstellt oder ein Endpunkt hinzugefügt wird, werden Sie aufgefordert, zur Bestätigung die Eingabetaste zu drücken. Fügen Sie in einem Skript oder einer CI/CD Pipeline ohne Aufforderung --create zur Bestätigung hinzu.

Verwenden Sie die API-Befehle direkt

Der deploy Befehl lädt Ihren Code auf Amazon S3 hoch und erstellt die Webfunktion, die Revision und den Endpunkt für Sie. Um jeden Schritt selbst zu steuern, verwenden Sie die AWS CLI Befehle, die den API-Operationen zugeordnet sind, wie create-web-functioncreate-web-function-revision, undupdate-web-function-endpoint. Ersetzen Sie in den folgenden Befehlen jeden Platzhalter für Benutzereingaben durch Ihre eigenen Informationen.

Um eine Webfunktion mit den API-Befehlen zu erstellen (AWS CLI)
  1. Erstellen Sie ein ZIP-Bereitstellungspaket aus Ihrem App-Verzeichnis, wobei sich Ihre Eintragsdatei im Stammverzeichnis des Pakets befindet. Laden Sie das Paket in einen Amazon S3 S3-Bucket hoch, der die Anforderungen in erfülltVoraussetzungen. Die folgenden Befehle erstellen das Paket und verwenden es AWS CLI , um es hochzuladen.

    cd my-app zip -r ../my-app.zip . aws s3 cp ../my-app.zip s3://amzn-s3-demo-bucket/my-app.zip
  2. Verwenden Sie den folgenden AWS CLI Befehl, um die Web-Funktion mit ihrer ersten Revision und ihrem ersten Endpunkt zu erstellen. InrevisionConfig, buildConfig gibt den Speicherort und die Laufzeit des Codes serviceConfig an und gibt die Ausführungsrolle an. Die endpointConfig Eigenschaft definiert den Endpunkt.

    aws lambda-web create-web-function \ --function-name my-web-app \ --revision-config '{ "buildConfig": { "codeConfig": { "s3Object": { "bucket": "amzn-s3-demo-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }, "serviceConfig": { "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-app-execution-role" } }' \ --endpoint-config '{ "endpointName": "my-endpoint", "endpointType": "HomeRegion", "authType": "ApplicationManaged", "autoDeploymentMode": "LatestRevision" }'

    Die autoDeploymentMode-Eigenschaft ist optional. Wenn Sie es weglassen, ist die StandardeinstellungDisabled, und der Endpunkt leitet den Datenverkehr nicht automatisch an neue Revisionen weiter. Notieren Sie sich revisionId die Revision in der Antwort.

  3. Warten Sie, bis die Revision fertig istActive. rev-abc12Ersetzen Sie durch die Revisions-ID aus dem vorherigen Schritt.

    aws lambda-web wait web-function-revision-active \ --function-name my-web-app \ --revision-id rev-abc12
  4. Ruft die Details des Endpunkts ab.

    aws lambda-web get-web-function-endpoint \ --function-name my-web-app \ --endpoint-name my-endpoint

    Wenn der Endpunkt state istActive, senden Sie Anfragen an seinendomainName. Die Antwort sieht aus wie der folgende Auszug.

    { "endpointName": "my-endpoint", "endpointType": "HomeRegion", "domainName": "bcdfghjklmnpqrst.b7t.lambda-web.us-east-1.on.aws", "authType": "ApplicationManaged", "autoDeploymentMode": "LatestRevision", "state": "Active", "updateStatus": "Successful" }
Um eine Änderung mit den API-Befehlen bereitzustellen (AWS CLI)
  • Laden Sie ein neues Paket hoch und erstellen Sie eine Revision. Eine Revision ist ein vollständiger Snapshot. Übergeben Sie die vollständige buildConfig Version serviceConfig jedes Mal.

    aws s3 cp ../my-app.zip s3://amzn-s3-demo-bucket/my-app.zip aws lambda-web create-web-function-revision \ --function-name my-web-app \ --build-config '{ "codeConfig": { "s3Object": { "bucket": "amzn-s3-demo-bucket", "key": "my-app.zip" } }, "runtimeConfig": { "runtime": "nodejs24.x" } }' \ --service-config '{ "executionRoleArn": "arn:aws:iam::111122223333:role/my-web-app-execution-role" }'

    Da der Endpunkt auf autoDeploymentMode eingestellt istLatestRevision, leitet er den gesamten Datenverkehr an die neue Revision weiter, nachdem die Revision geändert wurdeActive. Wenn Sie autoDeploymentMode auf einstellenDisabled, leiten Sie den Verkehr stattdessen mit Gewichten update-web-function-endpoint und Revisionsgewichten weiter. Weitere Informationen finden Sie unter Bereitstellungsmuster.

Bereinigen

Wenn Sie die Webfunktion nicht mehr benötigen, löschen Sie sie:

aws lambda-web delete-web-function --function-name my-web-app

Mit diesem Befehl werden auch die Endpunkte und Revisionen der Web-Funktion gelöscht. Die Ressourcen, die deploy erstellt oder verwendet wurden, werden nicht gelöscht: die IAM-Ausführungsrolle (awscli-lambdaweb-my-web-appstandardmäßig), die Bereitstellungspakete lambda-web/my-web-app/ im Amazon S3 S3-Bucket (awscli-lambdaweb-account-id-region-anstandardmäßig), einschließlich nicht aktueller Objektversionen, oder die Amazon CloudWatch Logs-Protokollgruppen für die Web-Funktion. Löschen Sie diese Ressourcen nur dann separat, wenn Sie sie nicht mehr benötigen. Der verwaltete Amazon S3 S3-Bucket kann von anderen Bereitstellungen in derselben AWS-Konto Region gemeinsam genutzt werden.