Carica gli artefatti locali in un bucket S3 con AWS CLI - AWS CloudFormation

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à.

Carica gli artefatti locali in un bucket S3 con AWS CLI

Per alcune proprietà di risorsa che richiedono una posizione Amazon S3 (nome del bucket e nome del file), puoi specificare riferimenti locali. Ad esempio, puoi specificare la posizione S3 del codice sorgente della tua AWS Lambda funzione o un file Open REST API di Amazon API Gateway API (precedentemente Swagger). Invece di caricare manualmente i file in un bucket S3 e quindi aggiungere la posizione al modello, puoi specificare riferimenti locali, chiamati artefatti locali, nel modello e quindi utilizzare il comando per caricarli rapidamente. packageCLI Un artefatto locale è un percorso a un file o a una cartella che il comando package carica in Amazon S3. Ad esempio, un artefatto può essere un percorso locale al codice sorgente della AWS Lambda funzione o un file Open REST API API di Amazon API Gateway.

Se specifichi un file, il comando lo carica direttamente nel bucket S3. Dopo aver caricato gli artefatti, il comando restituisce una copia del modello, sostituendo i riferimenti ad artefatti locali con la posizione S3 in cui il comando ha caricato gli artefatti. Quindi puoi utilizzare il modello restituito per creare o aggiornare uno stack.

Se specifichi una cartella, il comando crea un .zip file per la cartella e quindi carica il file. .zip Se non specificate un percorso, il comando crea un .zip file per la directory di lavoro e lo carica. È possibile specificare un percorso assoluto o relativo, in cui il percorso è relativo alla posizione del modello.

Puoi utilizzare artefatti locali solo per le proprietà di risorsa supportate dal comando package. Per ulteriori informazioni su questo comando e un elenco delle proprietà delle risorse supportate, consultate la packagedocumentazione nel AWS CLI Command Reference.

Il seguente modello specifica l'artefatto locale per il codice sorgente della funzione Lambda. Il codice sorgente è memorizzato nella cartella /home/user/code/lambdafunction dell'utente.

Modello originale

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "MyFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs18.x", "CodeUri": "/home/user/code/lambdafunction" } } } }

Il package comando seguente crea un .zip file contenente la cartella del codice sorgente della funzione, quindi carica il .zip file nella cartella principale del mybucket bucket.

Comando package

aws cloudformation package --s3-bucket mybucket \ --template /path_to_template/template.json \ --output-template-file packaged-template.json \ --output json

Il comando salva il modello generato nel percorso specificato dall'opzione --output-template-file. Il comando sostituisce l'artefatto con la posizione di Amazon S3, come nell'esempio seguente:

Modello risultante

{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::Serverless-2016-10-31", "Resources": { "MyFunction": { "Type": "AWS::Serverless::Function", "Properties": { "Handler": "index.handler", "Runtime": "nodejs18.x", "CodeUri": "s3://mybucket/<md5 checksum>" } } } }