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.
Erstellen von Node.js-Lambda-Funktionen mit esbuild
Um Node.js- AWS Lambda Funktionen zu erstellen und zu verpacken, können Sie mit AWS SAMCLI dem esbuild- JavaScript Bundler verwenden. Der esbuild-Bundler unterstützt Lambda-Funktionen, die Sie in schreiben TypeScript.
Um eine Node.js-Lambda-Funktion mit esbuild zu erstellen, fügen Sie Ihrer AWS:Serverless::Function
Ressource ein Metadata
Objekt hinzu und geben Sie esbuild
für die anBuildMethod
. Wenn Sie den sam build Befehl ausführen, AWS SAM verwendet esbuild, um Ihren Lambda-Funktionscode zu bündeln.
Metadateneigenschaften
Das -Metadata
Objekt unterstützt die folgenden Eigenschaften für esbuild.
BuildMethod
Gibt den Bundler für Ihre Anwendung an. Der einzige unterstützte Wert ist esbuild
.
BuildProperties
Gibt die Build-Eigenschaften für Ihren Lambda-Funktionscode an.
Das -BuildProperties
Objekt unterstützt die folgenden Eigenschaften für esbuild. Alle Eigenschaften sind optional. Standardmäßig AWS SAM verwendet Ihren Lambda-Funktionshandler als Eintrittspunkt.
- EntryPoints
-
Gibt Einstiegspunkte für Ihre Anwendung an.
- Extern
-
Gibt die Liste der Pakete an, die aus dem Build weggelassen werden sollen. Weitere Informationen finden Sie unter Extern
auf der esbuild Website . - Format
-
Gibt das Ausgabeformat der generierten JavaScript Dateien in Ihrer Anwendung an. Weitere Informationen finden Sie unter Format
auf der esbuild-Website. - Loader
-
Gibt die Liste der Konfigurationen zum Laden von Daten für einen bestimmten Dateityp an.
- MainFields
-
Gibt an, welche
package.json
Felder beim Auflösen eines Pakets importiert werden sollen. Der Standardwert istmain,module
. - Minifizieren
-
Gibt an, ob der gebündelte Ausgabecode minimiert werden soll. Der Standardwert ist
true
. - OutExtension
-
Passen Sie die Dateierweiterung der Dateien an, die esbuild generiert. Weitere Informationen finden Sie unter Out-Erweiterung
auf der esbuild-Website. - Sourcemap
-
Gibt an, ob der Bundler eine Quellkartendatei erzeugt. Der Standardwert ist
false
.Wenn diese Option auf festgelegt ist
true
,NODE_OPTIONS: --enable-source-maps
wird an die Umgebungsvariablen der Lambda-Funktion angehängt und eine Quellzuordnung wird generiert und in die Funktion aufgenommen.Alternativ
NODE_OPTIONS: --enable-source-maps
wird , wenn in den Umgebungsvariablen der Funktion enthaltenSourcemap
ist, automatisch auf gesetzttrue
.Bei Konflikten
Sourcemap: false
hat Vorrang vorNODE_OPTIONS: --enable-source-maps
.Anmerkung
Standardmäßig verschlüsselt Lambda alle Umgebungsvariablen im Ruhezustand mit AWS Key Management Service (AWS KMS). Wenn Sie Quellkarten verwenden, muss die Ausführungsrolle Ihrer Funktion über die Berechtigung zum Ausführen der
kms:Encrypt
Aktion verfügen, damit die Bereitstellung erfolgreich ist. - SourcesContent
-
Gibt an, ob Ihr Quellcode in Ihre Quellkartendatei aufgenommen werden soll. Konfigurieren Sie diese Eigenschaft, wenn auf gesetzt
Sourcemap
ist'true'
.-
Geben Sie an
SourcesContent: 'true'
, um den gesamten Quellcode einzuschließen. -
Geben Sie an
SourcesContent: 'false'
, um den gesamten Quellcode auszuschließen. Dies führt zu kleineren Quellkarten-Dateigrößen, was in der Produktion nützlich ist, indem die Startzeiten reduziert werden. Quellcode ist jedoch nicht im Debugger verfügbar.
Der Standardwert ist
SourcesContent: true
.Weitere Informationen finden Sie unter Quellinhalte
auf der esbuild-Website. -
- Ziel
-
Gibt die ECMAScript-Zielversion an. Der Standardwert ist
es2020
.
TypeScript Beispiel für eine Lambda-Funktion
Der folgende Beispiel- AWS SAM Vorlagenausschnitt verwendet esbuild, um eine Node.js-Lambda-Funktion aus dem TypeScript Code in zu erstellenhello-world/app.ts
.
Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello-world/ Handler: app.handler Runtime: nodejs14.x Architectures: - x86_64 Events: HelloWorld: Type: Api Properties: Path: /hello Method: get Environment: Variables: NODE_OPTIONS: --enable-source-maps Metadata: BuildMethod: esbuild BuildProperties: Format: esm Minify: false OutExtension: - .js=.mjs Target: "es2020" Sourcemap: true EntryPoints: - app.ts External: - "
<package-to-exclude>
"