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, è possibile utilizzare AWS SAM CLI con il JavaScript bundler esbuild. 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'Metadataoggetto 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'BuildPropertiesoggetto 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, vedete External
in esbuild sito Web. - Formato
-
Speciifica 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.jsoncampi 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-mapsviene 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,Sourcemapviene impostato automaticamente su.trueIn caso di conflitto, ha
Sourcemap: falsela precedenza su.NODE_OPTIONS: --enable-source-mapsNota
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:Encryptazione. - 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 destinazione ECMAScript . 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>"