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, potresti specificare la posizione S3 del tuo AWS Lambda codice sorgente della funzione o un file Open API (precedentemente Swagger) REST API di Amazon API Gateway. 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 packageCLIcomando per caricarli rapidamente. 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 verso il AWS Lambda il codice sorgente della funzione o il API file Open REST 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 .zip file. 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 packagedocumentazione contenuta in AWS CLI Riferimento ai comandi.

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 amzn-s3-demo-bucket bucket.

Comando package

aws cloudformation package --s3-bucket amzn-s3-demo-bucket \ --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://amzn-s3-demo-bucket/<md5 checksum>" } } } }