Bereitstellen von Node.js Lambda-Funktionen mit ZIP-Dateiarchiven - 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.

Bereitstellen von Node.js Lambda-Funktionen mit ZIP-Dateiarchiven

Der Code Ihrer AWS Lambda Funktion besteht aus einer .js- oder .mjs-Datei, die den Handlercode Ihrer Funktion enthält, zusammen mit allen zusätzlichen Paketen und Modulen, von denen Ihr Code abhängt. Sie verwenden ein Bereitstellungspaket, um Ihren Funktionscode in Lambda bereitzustellen. Dieses Paket kann entweder ein ZIP-Dateiarchiv oder ein Container-Image sein. Weitere Informationen zur Verwendung von Container-Images mit Node.js finden Sie unter Bereitstellen von Node.js-Lambda-Funktionen mit Container-Images.

Zum Erstellen des Bereitstellungspakets für ein ZIP-Dateiarchiv können Sie ein integriertes Dienstprogramm für ZIP-Dateien Ihres Befehlszeilen-Tools oder ein anderes Dienstprogramm für ZIP-Dateien verwenden, wie 7zip. In den Beispiele in den folgenden Abschnitten wird davon ausgegangen, dass Sie ein zip-Befehlszeilen-Tool in einer Linux- oder MacOS-Umgebung verwenden. Unter Windows können Sie das Windows-Subsystem für Linux installieren, um eine Windows-Version von Ubuntu und Bash zu erhalten und dieselben Befehle zu verwenden.

Beachten Sie, dass Lambda POSIX Dateiberechtigungen verwendet, sodass Sie möglicherweise Berechtigungen für den Bereitstellungspaketordner festlegen müssen, bevor Sie das ZIP-Dateiarchiv erstellen.

Laufzeitabhängigkeiten in Node.js

Für Lambda-Funktionen, die die Node.js-Laufzeit verwenden, kann eine Abhängigkeit ein beliebiges Node.js-Modul sein. Die Laufzeitumgebung von Node.js enthält eine Reihe gängiger Bibliotheken sowie eine Version des AWS SDK for JavaScript. Die nodejs16.x Lambda-Laufzeit umfasst Version 2.x von. SDK Runtime-Versionen nodejs18.x und höher enthalten Version 3 von. SDK Um Version 2 von SDK mit Runtime-Versionen nodejs18.x und höher SDK zu verwenden, fügen Sie das Ihrem Bereitstellungspaket für die ZIP-Datei hinzu. Wenn Ihre gewählte Runtime die Version von enthält, die SDK Sie verwenden, müssen Sie die SDK Bibliothek nicht in Ihre ZIP-Datei aufnehmen. Informationen darüber, welche Version von in der von Ihnen verwendeten Runtime enthalten SDK ist, finden Sie unterVersionen, die zur Laufzeit gehören SDK.

Lambda aktualisiert die SDK Bibliotheken in der Laufzeit von Node.js regelmäßig, sodass sie die neuesten Funktionen und Sicherheitsupgrades enthalten. Lambda wendet auch Sicherheitspatches und Updates auf die anderen in der Laufzeit enthaltenen Bibliotheken an. Um die volle Kontrolle über die Abhängigkeiten in Ihrem Paket zu haben, können Sie Ihrem Bereitstellungspaket Ihre bevorzugte Version einer beliebigen in die Laufzeit eingeschlossenen Abhängigkeit hinzufügen. Wenn Sie beispielsweise eine bestimmte Version von SDK for verwenden möchten JavaScript, können Sie sie als Abhängigkeit in Ihre ZIP-Datei aufnehmen. Weitere Informationen zum Hinzufügen von in die Laufzeit eingeschlossene Abhängigkeiten zu Ihrer ZIP-Datei finden Sie unter Suchpfad für Abhängigkeiten und integrierte Laufzeit-Bibliotheken.

Im Rahmen des AWS -Modells der geteilten Verantwortung sind Sie für die Verwaltung aller Abhängigkeiten in den Bereitstellungspaketen Ihrer Funktionen verantwortlich. Dies beinhaltet das Durchführen von Updates und Sicherheitspatches. Zum Aktualisieren von Abhängigkeiten im Bereitstellungspaket Ihrer Funktion erstellen Sie zunächst eine neue ZIP-Datei und laden Sie diese dann in Lambda hoch. Weitere Informationen finden Sie unter ZIP-Bereitstellungspakets mit Abhängigkeiten erstellen und Erstellen und Aktualisieren von Node.js-Lambda-Funktionen mithilfe von ZIP-Dateien.

ZIP-Bereitstellungspakets ohne Abhängigkeiten erstellen

Wenn Ihr Funktionscode neben den in der Lambda-Laufzeit eingeschlossenen Bibliotheken keine Abhängigkeiten hat, enthält Ihre ZIP-Datei nur die index.js- oder index.mjs-Datei mit dem Handler-Code Ihrer Funktion. Erstellen Sie mit Ihrem bevorzugten ZIP-Programm eine ZIP-Datei mit Ihrer index.js- oder index.mjs-Datei im Stammverzeichnis. Wenn sich die Datei mit Ihrem Handler-Code nicht im Stammverzeichnis Ihrer ZIP-Datei, kann Lambda Ihren Code nicht ausführen.

Informationen zum Bereitstellen Ihrer ZIP-Datei zum Erstellen einer neuen Lambda-Funktion oder Aktualisieren einer vorhandenen Funktion, finden Sie unter Erstellen und Aktualisieren von Node.js-Lambda-Funktionen mithilfe von ZIP-Dateien.

ZIP-Bereitstellungspakets mit Abhängigkeiten erstellen

Wenn Ihr Funktionscode von Paketen oder Modulen abhängt, die nicht in der Lambda-Node.js-Laufzeit enthalten sind, können Sie diese Abhängigkeiten entweder mit Ihrem Funktionscode zu Ihrer ZIP-Datei hinzufügen oder eine Lambda-Ebene verwenden. Die Anweisungen in diesem Abschnitt zeigen Ihnen, wie Sie Ihre Abhängigkeiten in Ihr ZIP-Bereitstellungspaket aufnehmen. Anweisungen zum Einschließen Ihrer Abhängigkeiten in eine Ebene finden Sie unter Erstellen einer Node.js-Ebene für Ihre Abhängigkeiten.

Mit den folgenden CLI Beispielbefehlen wird eine ZIP-Datei mit dem Namen erstellt, die die index.js index.mjs ODER-Datei mit dem Handlercode Ihrer Funktion und seinen Abhängigkeiten my_deployment_package.zip enthält. Im Beispiel installieren Sie Abhängigkeiten mit dem npm-Paketmanager.

Erstellen des Bereitstellungspakets
  1. Navigieren Sie zum Projektverzeichnis, das Ihre Quellcodedatei index.js oder index.mjs enthält. In diesem Beispiel trägt das Verzeichnis den Namen my_function.

    cd my_function
  2. Installieren Sie die erforderlichen Bibliotheken Ihrer Funktion im Verzeichnis node_modules mit dem Befehl npm install. In diesem Beispiel installieren Sie das AWS X-Ray-SDK for Node.js.

    npm install aws-xray-sdk

    Dabei wird eine Ordnerstruktur erstellt, die etwa wie folgt aussieht:

    ~/my_function ├── index.mjs └── node_modules ├── async ├── async-listener ├── atomic-batcher ├── aws-sdk ├── aws-xray-sdk ├── aws-xray-sdk-core

    Sie können Ihrem Bereitstellungspaket auch benutzerdefinierte Module hinzufügen, die Sie selbst erstellen. Erstellen Sie ein Verzeichnis unter node_modules mit dem Namen Ihres Moduls und speichern Sie Ihre benutzerdefinierten geschriebenen Pakete dort.

  3. Erstellen Sie im Stammverzeichnis eine ZIP-Datei mit den Inhalten Ihres Projektordners. Benutzen Sie die r (rekursive) Option, um sicherzustellen, dass der zip-Befehl die Unterordner komprimiert.

    zip -r my_deployment_package.zip .

Erstellen einer Node.js-Ebene für Ihre Abhängigkeiten

Die Anweisungen in diesem Abschnitt zeigen Ihnen, wie Sie Ihre Abhängigkeiten in eine Ebene einschließen. Anweisungen zum Einschließen Ihrer Abhängigkeiten in Ihr Bereitstellungspaket finden Sie unter ZIP-Bereitstellungspakets mit Abhängigkeiten erstellen.

Wenn Sie einer Funktion eine Ebene hinzufügen, lädt Lambda den Ebeneninhalt in das Verzeichnis /opt der Ausführungsumgebung. Für jede Lambda-Laufzeit enthält die Variable PATH bereits spezifische Ordnerpfade innerhalb des Verzeichnisses /opt. Um sicherzustellen, dass die PATH Variable Ihren Ebeneninhalt aufnimmt, sollte Ihre Layer-.zip-Datei ihre Abhängigkeiten in den folgenden Ordnerpfaden haben:

  • nodejs/node_modules

  • nodejs/node16/node_modules (NODE_PATH)

  • nodejs/node18/node_modules (NODE_PATH)

  • nodejs/node20/node_modules (NODE_PATH)

Die Struktur Ihrer Ebene-ZIP-Datei könnte beispielsweise wie folgt aussehen:

xray-sdk.zip └ nodejs/node_modules/aws-xray-sdk

Darüber hinaus erkennt Lambda automatisch alle Bibliotheken im /opt/lib-Verzeichnis und alle Binärdateien im /opt/bin-Verzeichnis. Um sicherzustellen, dass Lambda Ihren Ebeneninhalt korrekt findet, können Sie auch eine Ebene mit der folgenden Struktur erstellen:

custom-layer.zip └ lib | lib_1 | lib_2 └ bin | bin_1 | bin_2

Nachdem Sie Ihre Ebene gebündelt haben, sehen Sie sich Erstellen und Löschen von Ebenen in Lambda und Hinzufügen von Ebenen zu Funktionen an, um die Einrichtung Ihrer Ebene abzuschließen.

Suchpfad für Abhängigkeiten und integrierte Laufzeit-Bibliotheken

Die Laufzeitumgebung von Node.js enthält eine Reihe gängiger Bibliotheken sowie eine Version des AWS SDK for JavaScript. Wenn Sie eine andere Version einer in die Laufzeit eingeschlossenen Bibliothek verwenden möchten, können Sie sie mit Ihrer Funktion bündeln oder sie als Abhängigkeit zu Ihrem Bereitstellungspaket hinzufügen. Sie können beispielsweise eine andere Version von verwenden, SDK indem Sie sie Ihrem ZIP-Bereitstellungspaket hinzufügen. Sie können sie auch in eine Lambda-Ebene für Ihre Funktion aufnehmen.

Wenn Sie in Ihrem Code eine import- oder require-Anweisung verwenden, durchsucht die Node.js-Laufzeit die Verzeichnisse im NODE_PATH-Pfad, bis das Modul gefunden wird. Standardmäßig ist der erste Speicherort, den die Laufzeit durchsucht, das Verzeichnis, in das Ihr ZIP-Bereitstellungspaket entpackt und bereitgestellt wird (/var/task). Nehmen Sie eine Version einer in der Laufzeit integrierten Bibliothek in Ihr Bereitstellungspaket auf, hat diese Version Vorrang vor der in der Laufzeit enthaltenen. Abhängigkeiten in Ihrem Bereitstellungspaket haben ebenfalls Vorrang vor Abhängigkeiten in Ebenen.

Wenn Sie einer Ebene eine Abhängigkeit hinzufügen, extrahiert Lambda diese in /opt/nodejs/nodexx/node_modules, wobei nodexx die von Ihnen verwendete Version der Laufzeitumgebung ist. Im Suchpfad hat dieses Verzeichnis Vorrang vor dem Verzeichnis mit den zur Laufzeit enthaltenen Bibliotheken (/var/lang/lib/node_modules). Bibliotheken in Funktionsebenen haben daher Vorrang vor Versionen, die in der Laufzeit enthalten sind.

Sie können den vollständigen Suchpfad für Ihre Lambda-Funktion sehen, indem Sie die folgende Codezeile hinzufügen:

console.log(process.env.NODE_PATH)

Fügen Sie Abhängigkeiten alternativ auch in einem separaten Ordner in Ihrem ZIP-Paket hinzu. Fügen Sie beispielsweise eine benutzerdefinierte Version zu einem Ordner in Ihrem ZIP-Paket mit dem Namen common hinzu. Wird Ihr ZIP-Paket entpackt und bereitgestellt, wird dieser Ordner im Verzeichnis „/var/task“ abgelegt. Um eine Abhängigkeit von einem Ordner in Ihrem ZIP-Bereitstellungspaket in Ihrem Code zu verwenden, verwenden Sie eine import { } from const { } = require() OR-Anweisung, je nachdem, ob Sie die ESM Modulauflösung verwendenCJS. Beispielsweise:

import { myModule } from './common'

Wenn Sie Ihren Code mit esbuild, rollup oder ähnlichem bündeln, werden die von Ihrer Funktion verwendeten Abhängigkeiten in einer oder mehreren Dateien gebündelt. Wir empfehlen, diese Methode zu verwenden, um Abhängigkeiten wann immer möglich zu vergeben. Im Vergleich zum Hinzufügen von Abhängigkeiten zu Ihrem Bereitstellungspaket führt die Bündelung Ihres Codes zu einer verbesserten Leistung, da weniger E/A-Vorgänge erforderlich sind.

Erstellen und Aktualisieren von Node.js-Lambda-Funktionen mithilfe von ZIP-Dateien

Nachdem Sie Ihr .zip-Bereitstellungspaket erstellt haben, können Sie es verwenden, um eine neue Lambda-Funktion zu erstellen oder eine bestehende zu aktualisieren. Sie können Ihr .zip-Paket mit der Lambda-Konsole AWS Command Line Interface, dem und dem Lambda bereitstellen. API Sie können Lambda-Funktionen auch mit AWS Serverless Application Model (AWS SAM) und AWS CloudFormation erstellen und aktualisieren.

Die maximale Größe eines ZIP-Bereitstellungspakets für Lambda beträgt 250 MB (entpackt). Beachten Sie, dass dieser Grenzwert für die kombinierte Größe aller hochgeladenen Dateien gilt, einschließlich aller Lambda-Ebenen.

Die Lambda-Laufzeit benötigt die Berechtigung zum Lesen der Dateien in Ihrem Bereitstellungspaket. In der oktalen Schreibweise von Linux-Berechtigungen benötigt Lambda 644 Berechtigungen für nicht ausführbare Dateien (rw-r--r--) und 755 Berechtigungen () für Verzeichnisse und ausführbare Dateien. rwxr-xr-x

Verwenden Sie unter Linux und MacOS den chmod-Befehl, um Dateiberechtigungen für Dateien und Verzeichnisse in Ihrem Bereitstellungspaket zu ändern. Führen Sie beispielsweise den folgenden Befehl aus, um einer ausführbaren Datei die richtigen Berechtigungen zu gewähren.

chmod 755 <filepath>

Informationen zum Ändern von Dateiberechtigungen in Windows finden Sie unter Festlegen, Anzeigen, Ändern oder Entfernen von Berechtigungen für ein Objekt in der Microsoft-Windows-Dokumentation.

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien unter Verwendung der Konsole

Eine neue Funktion müssen Sie zuerst in der Konsole erstellen und dann Ihr ZIP-Archiv hochladen. Zum Aktualisieren einer bestehenden Funktion öffnen Sie die Seite für Ihre Funktion und gehen dann genauso vor, um Ihre aktualisierte ZIP-Datei hinzuzufügen.

Bei einer ZIP-Datei mit unter 50 MB können Sie eine Funktion erstellen oder aktualisieren, indem Sie die Datei direkt von Ihrem lokalen Computer hochladen. Bei ZIP-Dateien mit einer Größe von mehr als 50 MB müssen Sie Ihr Paket zuerst in einen Amazon-S3-Bucket hochladen. Anweisungen zum Hochladen einer Datei in einen Amazon S3-Bucket mithilfe von finden Sie unter Erste Schritte mit Amazon S3. AWS Management Console Informationen zum Hochladen von Dateien mit dem AWS CLI finden Sie unter Objekte verschieben im AWS CLI Benutzerhandbuch.

Anmerkung

Sie können den Bereitstellungspakettyp (.zip oder Container-Image) für eine bestehende Funktion nicht ändern. Sie können beispielsweise eine Container-Image-Funktion nicht so konvertieren, dass sie ein ZIP-Dateiarchiv verwendet. Sie müssen eine neue Funktion erstellen.

So erstellen Sie eine neue Funktion (Konsole)
  1. Öffnen Sie die Funktionsseite der Lambda-Konsole und wählen Sie Funktion erstellen aus.

  2. Wählen Sie Author from scratch aus.

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

    1. Geben Sie als Funktionsname den Namen Ihrer Funktion ein.

    2. Wählen Sie für Laufzeit die Laufzeit aus, die Sie verwenden möchten.

    3. (Optional) Für Architektur wählen Sie die Befehlssatz-Architektur für Ihre Funktion aus. Die Standardarchitektur ist x86_64. Stellen Sie sicher, dass das ZIP-Bereitstellungspaket für Ihre Funktion mit der von Ihnen gewählten Befehlssatzarchitektur kompatibel ist.

  4. (Optional) Erweitern Sie unter Berechtigungen die Option Standardausführungsrolle ändern. Sie können eine neue Ausführungsrolle erstellen oder eine vorhandene Rolle verwenden.

  5. Wählen Sie Funktion erstellen aus. Lambda erstellt eine grundlegende „Hello World“-Funktion mit der von Ihnen gewählten Laufzeit.

So laden Sie ein ZIP-Archiv von Ihrem lokalen Computer hoch (Konsole)
  1. Wählen Sie auf der Funktionsseite der Lambda-Konsole die Funktion aus, für die Sie die ZIP-Datei hochladen möchten.

  2. Wählen Sie die Registerkarte Code aus.

  3. Wählen Sie im Bereich Codequelle die Option Hochladen von aus.

  4. Wählen Sie die ZIP-Datei aus.

  5. Laden Sie die ZIP-Datei wie folgt hoch:

    1. Wählen Sie Hochladen und dann Ihre ZIP-Datei in der Dateiauswahl aus.

    2. Klicken Sie auf Open.

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

So laden Sie ein ZIP-Archiv aus einem Amazon-S3-Bucket hoch (Konsole)
  1. Wählen Sie auf der Funktionsseite der Lambda-Konsole die Funktion aus, für die Sie eine neue ZIP-Datei hochladen möchten.

  2. Wählen Sie die Registerkarte Code aus.

  3. Wählen Sie im Bereich Codequelle die Option Hochladen von aus.

  4. Wählen Sie den Amazon-S3-Speicherort aus.

  5. Fügen Sie den Amazon S3 S3-Link URL Ihrer ZIP-Datei ein und wählen Sie Speichern.

ZIP-Dateifunktionen mithilfe des Konsolencode-Editors aktualisieren

Für einige Funktionen mit ZIP-Bereitstellungspaketen können Sie Ihren Funktionscode direkt mit dem in der Lambda-Konsole integrierten Code-Editor aktualisieren. Zur Verwendung dieses Features muss Ihre Funktion folgende Kriterien erfüllen:

  • Ihre Funktion muss eine der interpretierten Sprache der Laufzeit verwenden (Python, Node.js oder Ruby).

  • Das Bereitstellungspaket Ihrer Funktion muss kleiner als 3 MB sein.

Funktionscode für Funktionen mit Container-Image-Bereitstellungspaketen kann nicht direkt in der Konsole bearbeitet werden.

So aktualiseren Sie Ihren Funktionscode mit dem Code-Editor
  1. Öffnen Sie die Funktionsseite der Lambda-Konsole und wählen Sie Ihre Funktion aus.

  2. Wählen Sie die Registerkarte Code aus.

  3. Wählen Sie im Bereich Codequelle Ihre Quellcodedatei aus und bearbeiten Sie sie im integrierten Code-Editor.

  4. Nach der Bearbeitung Ihres Codes wählen Sie Bereitstellen aus, um Ihre Änderungen zu speichern und Ihre Funktion zu aktualisieren.

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien mithilfe der AWS CLI

Sie können die AWS CLI verwenden, um eine neue Funktion zu erstellen oder eine vorhandene unter Verwendung einer ZIP-Datei zu aktualisieren. Verwenden Sie die Erstellungsfunktion und die update-function-codeBefehle, um Ihr .zip-Paket bereitzustellen. Wenn Ihre ZIP-Datei kleiner als 50 MB ist, können Sie das ZIP-Paket von einem Dateispeicherort auf Ihrem lokalen Build-Computer hochladen. Bei größeren Dateien müssen Sie Ihr ZIP-Paket aus einem Amazon-S3-Bucket hochladen. Anweisungen zum Hochladen einer Datei in einen Amazon S3 S3-Bucket mithilfe von finden Sie unter Objekte verschieben im AWS CLI Benutzerhandbuch. AWS CLI

Anmerkung

Wenn Sie Ihre ZIP-Datei mithilfe von aus einem Amazon S3 S3-Bucket hochladen AWS CLI, muss sich der Bucket im selben Verzeichnis befinden AWS-Region wie Ihre Funktion.

Um eine neue Funktion mithilfe einer .zip-Datei mit dem zu erstellen AWS CLI, müssen Sie Folgendes angeben:

  • Den Namen Ihrer Funktion (--function-name)

  • Die Laufzeit Ihrer Funktion (--runtime)

  • Der Amazon-Ressourcenname (ARN) der Ausführungsrolle (--role) Ihrer Funktion

  • Den Namen der Handler-Methode in Ihrem Funktionscode (--handler)

Sie müssen auch den Speicherort Ihrer ZIP-Datei angeben. Befindet sich Ihre ZIP-Datei in einem Ordner auf Ihrem lokalen Build-Computer, verwenden Sie die --zip-file-Option, um den Dateipfad anzugeben, wie im folgenden Beispielbefehl gezeigt.

aws lambda create-function --function-name myFunction \ --runtime nodejs20.x --handler index.handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --zip-file fileb://myFunction.zip

Zur Angabe des Speicherorts der ZIP-Datei in einem Amazon-S3-Bucket verwenden Sie die im folgenden Beispielbefehl gezeigte --code-Option. Sie müssen den S3ObjectVersion-Parameter nur für versionierte Objekte verwenden.

aws lambda create-function --function-name myFunction \ --runtime nodejs20.x --handler index.handler \ --role arn:aws:iam::111122223333:role/service-role/my-lambda-role \ --code S3Bucket=amzn-s3-demo-bucket,S3Key=myFileName.zip,S3ObjectVersion=myObjectVersion

Um eine bestehende Funktion mit dem zu aktualisierenCLI, geben Sie den Namen Ihrer Funktion mithilfe des --function-name Parameters an. Sie müssen auch den Speicherort der ZIP-Datei angeben, die Sie zum Aktualisieren Ihres Funktionscodes verwenden möchten. Befindet sich Ihre ZIP-Datei in einem Ordner auf Ihrem lokalen Build-Computer, verwenden Sie die --zip-file-Option, um den Dateipfad anzugeben, wie im folgenden Beispielbefehl gezeigt.

aws lambda update-function-code --function-name myFunction \ --zip-file fileb://myFunction.zip

Zur Angabe des Speicherorts der ZIP-Datei in einem Amazon-S3-Bucket verwenden Sie die im folgenden Beispielbefehl gezeigten --s3-bucket- und --s3-key-Optionen. Sie müssen den --s3-object-version-Parameter nur für versionierte Objekte verwenden.

aws lambda update-function-code --function-name myFunction \ --s3-bucket amzn-s3-demo-bucket --s3-key myFileName.zip --s3-object-version myObject Version

Funktionen mit ZIP-Dateien mithilfe von Lambda erstellen und aktualisieren API

Gehen Sie wie folgt vor, um Funktionen mithilfe eines ZIP-Dateiarchivs zu erstellen und zu aktualisieren: API

Funktionen mit ZIP-Dateien erstellen und aktualisieren mit AWS SAM

Das AWS Serverless Application Model (AWS SAM) ist ein Toolkit, das dabei hilft, den Prozess der Erstellung und Ausführung serverloser Anwendungen zu optimieren. AWS Sie definieren die Ressourcen für Ihre Anwendung in einer YAML JSON OR-Vorlage und verwenden die AWS SAM Befehlszeilenschnittstelle (AWS SAM CLI), um Ihre Anwendungen zu erstellen, zu verpacken und bereitzustellen. Wenn Sie eine Lambda-Funktion aus einer AWS SAM Vorlage erstellen, AWS SAM wird automatisch ein ZIP-Bereitstellungspaket oder ein Container-Image mit Ihrem Funktionscode und allen von Ihnen angegebenen Abhängigkeiten erstellt. Weitere Informationen zur Verwendung AWS SAM zum Erstellen und Bereitstellen von Lambda-Funktionen finden Sie unter Erste Schritte mit AWS SAM im AWS Serverless Application Model Entwicklerhandbuch.

Sie können es auch verwenden AWS SAM , um eine Lambda-Funktion mithilfe eines vorhandenen ZIP-Dateiarchivs zu erstellen. Um eine Lambda-Funktion zu erstellen AWS SAM, können Sie Ihre ZIP-Datei in einem Amazon S3 S3-Bucket oder in einem lokalen Ordner auf Ihrem Build-Computer speichern. Anweisungen zum Hochladen einer Datei in einen Amazon S3 S3-Bucket mithilfe von finden Sie unter Objekte verschieben im AWS CLI Benutzerhandbuch. AWS CLI

In Ihrer AWS SAM Vorlage spezifiziert die AWS::Serverless::Function Ressource Ihre Lambda-Funktion. Legen Sie in dieser Ressource die folgenden Eigenschaften fest, um eine Funktion zu erstellen, die als ZIP-Datei-Archiv definiert ist:

  • PackageType – festlegen auf Zip

  • CodeUri- auf das Amazon S3 des FunktionscodesURI, den Pfad zum lokalen Ordner oder das FunctionCodeObjekt gesetzt

  • Runtime – festlegen auf die gewünschte Laufzeit

Wenn Ihre ZIP-Datei größer als 50 MB ist, müssen Sie sie nicht zuerst in einen Amazon S3 S3-Bucket hochladen. AWS SAM AWS SAM kann .zip-Pakete bis zur maximal zulässigen Größe von 250 MB (entpackt) von einem Speicherort auf Ihrem lokalen Build-Computer hochladen.

Weitere Informationen zum Bereitstellen von Funktionen mithilfe der ZIP-Datei in AWS SAM finden Sie unter AWS: :Serverless: :Function im Entwicklerhandbuch.AWS SAM

Erstellen und Aktualisieren von Funktionen mit ZIP-Dateien mithilfe von AWS CloudFormation

Sie können verwenden AWS CloudFormation , um eine Lambda-Funktion mithilfe eines ZIP-Dateiarchivs zu erstellen. Um eine Lambda-Funktion aus einer ZIP-Datei zu erstellen, müssen Sie Ihre Datei zunächst in einen Amazon-S3-Bucket hochladen. Anweisungen zum Hochladen einer Datei in einen Amazon S3 S3-Bucket mithilfe von finden Sie unter Objekte verschieben im AWS CLI Benutzerhandbuch. AWS CLI

In Ihrer AWS CloudFormation Vorlage spezifiziert die AWS::Lambda::Function Ressource Ihre Lambda-Funktion. Legen Sie in dieser Ressource die folgenden Eigenschaften fest, um eine Funktion zu erstellen, die als ZIP-Datei-Archiv definiert ist:

  • PackageType – festlegen auf Zip

  • Code – Geben Sie den Namen des Amazon-S3-Buckets und den ZIP-Dateinamen in die Felder S3Bucket und S3Key ein

  • Runtime – festlegen auf die gewünschte Laufzeit

Die AWS CloudFormation generierte ZIP-Datei darf 4 MB nicht überschreiten. Weitere Informationen zum Bereitstellen von Funktionen mithilfe der ZIP-Datei in AWS CloudFormation finden Sie unter AWS: :Lambda: :Function im Benutzerhandbuch.AWS CloudFormation