Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Creazione di funzioni Lambda Node.js con esbuild in AWS SAM
Per creare e impacchettare AWS Lambda le funzioni Node.js, puoi usarle AWS SAMCLI con il bundler esbuild JavaScript . Il bundler esbuild supporta le funzioni Lambda in cui scrivi. TypeScript
Per creare una funzione Lambda Node.js con esbuild, aggiungi un Metadata
oggetto alla tua AWS:Serverless::Function
risorsa e specifica esbuild
per. BuildMethod
Quando esegui il sam build comando, AWS SAM usa esbuild per raggruppare il codice della funzione Lambda.
Proprietà dei metadati
L'Metadata
oggetto supporta le seguenti proprietà per esbuild.
BuildMethod
Specifica il bundler per l'applicazione. L'unico valore supportato è esbuild
.
BuildProperties
Specifica le proprietà di compilazione per il codice della funzione Lambda.
L'BuildProperties
oggetto supporta le seguenti proprietà per esbuild. Tutte le proprietà sono opzionali. Per impostazione predefinita, AWS SAM utilizza il gestore di funzioni Lambda per il punto di ingresso.
- EntryPoints
-
Specifica i punti di ingresso per l'applicazione.
- Esterno
-
Specifica l'elenco dei pacchetti da omettere dalla compilazione. Per ulteriori informazioni, consulta External
nel sito Web. esbuild - Formato
-
Specificate il formato di output dei JavaScript file generati nell'applicazione. Per ulteriori informazioni, consulta Format
nel sito web esbuild. - Loader
-
Specifica l'elenco delle configurazioni per il caricamento dei dati per un determinato tipo di file.
- MainFields
-
Speciifica quali
package.json
campi provare a importare durante la risoluzione di un pacchetto. Il valore predefinito èmain,module
. - Minimizza
-
Specifica se minimizzare il codice di output in bundle. Il valore predefinito è
true
. - OutExtension
-
Personalizza l'estensione dei file generati da esbuild. Per ulteriori informazioni, consulta l'estensione Out
nel sito Web di esbuild. - Mappa dei sorgenti
-
Speciifica se il bundler produce un file di mappa sorgente. Il valore predefinito è
false
.Se impostato su
true
,NODE_OPTIONS: --enable-source-maps
viene aggiunto alle variabili di ambiente della funzione Lambda e viene generata e inclusa nella funzione una mappa di origine.In alternativa, quando
NODE_OPTIONS: --enable-source-maps
è incluso nelle variabili di ambiente della funzione,Sourcemap
viene impostato automaticamente su.true
In caso di conflitto, ha
Sourcemap: false
la precedenza su.NODE_OPTIONS: --enable-source-maps
Nota
Per impostazione predefinita, Lambda crittografa tutte le variabili di ambiente inattive con AWS Key Management Service ().AWS KMS Quando si utilizzano mappe di origine, affinché la distribuzione abbia esito positivo, il ruolo di esecuzione della funzione deve disporre dell'autorizzazione per eseguire l'
kms:Encrypt
azione. - SourcesContent
-
Speciifica se includere il codice sorgente nel file della mappa di origine. Configura questa proprietà quando
Sourcemap
è impostata su.'true'
-
SourcesContent: 'true'
Specificare di includere tutto il codice sorgente. -
SourcesContent: 'false'
Specificare di escludere tutto il codice sorgente. Ciò si traduce in una riduzione delle dimensioni dei file delle mappe di origine, utili nella produzione in quanto riducono i tempi di avvio. Tuttavia, il codice sorgente non sarà disponibile nel debugger.
Il valore predefinito è
SourcesContent: true
.Per ulteriori informazioni, consulta il contenuto di Sources nel sito Web
di esbuild. -
- Target
-
Specifica la versione di destinazioneECMAScript. Il valore predefinito è
es2020
.
TypeScript Esempio di funzione Lambda
Il seguente frammento di AWS SAM modello di esempio utilizza esbuild per creare una funzione Lambda Node.js dal codice in. TypeScript hello-world/app.ts
Resources: HelloWorldFunction: Type: AWS::Serverless::Function Properties: CodeUri: hello-world/ Handler: app.handler Runtime: nodejs20.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>
"