Esempi di comandi di funzionamento CloudFormation dello stack per e AWS CLI PowerShell - 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à.

Esempi di comandi di funzionamento CloudFormation dello stack per e AWS CLI PowerShell

I seguenti esempi da riga di comando mostrano come eseguire CloudFormation azioni individuali con and. AWS CLI PowerShell Questi esempi seguenti includono solo le operazioni più comunemente utilizzate. Per un elenco completo, consulta cloudformation nella AWS CLI Command Reference.

Gli esempi di questa guida utilizzano la convenzione di una barra rovesciata (\) per indicare che una lunga riga di comando continua sulla riga successiva.

Annulla l’aggiornamento di uno stack

Utilizza il comando cancel-update-stack per annullare l’aggiornamento di uno stack. Per ulteriori informazioni, consulta Annulla l’aggiornamento di uno stack.

CLI
AWS CLI

Come annullare un aggiornamento di stack in corso

Il seguente comando cancel-update-stack annulla un aggiornamento di stack nello stack myteststack:

aws cloudformation cancel-update-stack --stack-name myteststack
PowerShell
Strumenti per PowerShell V4

Esempio 1: annulla un aggiornamento nello stack specificato.

Stop-CFNUpdateStack -StackName "myStack"
  • Per i dettagli sull'API, vedere CancelUpdateStackin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: annulla un aggiornamento nello stack specificato.

Stop-CFNUpdateStack -StackName "myStack"
  • Per i dettagli sull'API, vedere CancelUpdateStackin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Rollback di un aggiornamento

Utilizza il comando continue-update-rollback per continuare il rollback di un aggiornamento. Per ulteriori informazioni, consulta Rollback di un aggiornamento.

CLI
AWS CLI

Come riprovare il rollback dell’aggiornamento

L’esempio continue-update-rollback seguente riprende un’operazione di rollback da un aggiornamento dello stack precedentemente non riuscito.

aws cloudformation continue-update-rollback \ --stack-name my-stack

Questo comando non produce alcun output.

PowerShell
Strumenti per PowerShell V4

Esempio 1: continua il rollback dello stack denominato, il cui stato deve essere “UPDATE_ROLLBACK_FAILED”. Se il rollback continuato ha esito positivo, lo stack assumerà lo stato “UPDATE_ROLLBACK_COMPLETE”.

Resume-CFNUpdateRollback -StackName "myStack"
  • Per i dettagli sull'API, vedere ContinueUpdateRollbackin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: continua il rollback dello stack denominato, il cui stato deve essere “UPDATE_ROLLBACK_FAILED”. Se il rollback continuato ha esito positivo, lo stack assumerà lo stato “UPDATE_ROLLBACK_COMPLETE”.

Resume-CFNUpdateRollback -StackName "myStack"
  • Per i dettagli sull'API, vedere ContinueUpdateRollbackin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Creare uno stack

Utilizza il comando create-stack per creare uno stack. Devi fornire il nome dello stack, la posizione di un modello valido e i parametri di input. I nomi delle chiavi dei parametri fanno distinzione tra maiuscole e minuscole. Se digiti erroneamente il nome della chiave di un parametro, CloudFormation non crea lo stack e segnala che il modello non contiene quel parametro.

Gli esempi seguenti mostrano come creare un nuovo stack con il nome, il modello e i parametri degli input specificati.

CLI
AWS CLI

Per creare uno stack AWS CloudFormation

Il seguente comando create-stacks crea uno stack denominato myteststack utilizzando il modello sampletemplate.json:

aws cloudformation create-stack --stack-name myteststack --template-body file://sampletemplate.json --parameters ParameterKey=KeyPairName,ParameterValue=TestKey ParameterKey=SubnetIDs,ParameterValue=SubnetID1\\,SubnetID2

Output:

{ "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896" }

Per ulteriori informazioni, consulta Stacks nella Guida per l'AWS CloudFormation utente.

PowerShell
Strumenti per PowerShell V4

Esempio 1: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack ha esito negativo, non verrà eseguito il rollback dello stack.

New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true

Esempio 2: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack ha esito negativo, verrà eseguito il rollback dello stack.

$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "PK1" $p1.ParameterValue = "PV1" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "PK2" $p2.ParameterValue = "PV2" New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( $p1, $p2 ) ` -OnFailure "ROLLBACK"

Esempio 3: crea un nuovo stack con il nome specificato. Il modello è ottenuto dall'URL di Amazon S3 con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false).

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Esempio 4: crea un nuovo stack con il nome specificato. Il modello è ottenuto dall'URL di Amazon S3 con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false). La notifica specificata AENs riceverà gli eventi pubblicati relativi allo stack.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Per i dettagli sull'API, vedere CreateStackin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack ha esito negativo, non verrà eseguito il rollback dello stack.

New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true

Esempio 2: crea un nuovo stack con il nome specificato. Il modello viene analizzato a partire dal contenuto fornito con parametri di personalizzazione ('' e PK1 'PK2' rappresentano i nomi dei parametri dichiarati nel contenuto del modello, '' e PV1 'PV2' rappresentano i valori di tali parametri. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack ha esito negativo, verrà eseguito il rollback dello stack.

$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "PK1" $p1.ParameterValue = "PV1" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "PK2" $p2.ParameterValue = "PV2" New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( $p1, $p2 ) ` -OnFailure "ROLLBACK"

Esempio 3: crea un nuovo stack con il nome specificato. Il modello è ottenuto dall'URL di Amazon S3 con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false).

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Esempio 4: crea un nuovo stack con il nome specificato. Il modello è ottenuto dall'URL di Amazon S3 con parametri di personalizzazione ('PK1' rappresenta il nome di un parametro dichiarato nel contenuto del modello, 'PV1' rappresenta il valore del parametro. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «» e «ParameterKey». ParameterValue Se la creazione dello stack fallisce, verrà ripristinato (come specificare - DisableRollback $false). La notifica specificata AENs riceverà gli eventi pubblicati relativi allo stack.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Per i dettagli sull'API, vedere CreateStackin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Nota

Puoi utilizzare l' AWS CLI --template-urlopzione per specificare una posizione del file modello in Amazon S3 o. AWS Systems Manager

Per Amazon S3, l’URL deve iniziare con https://. I siti Web statici S3 non URLs sono supportati.

--template-url https://s3.region-code.amazonaws.com/bucket-name/template-name

Per AWS Systems Manager, utilizza il seguente formato:

--template-url "ssm-doc://arn:aws:ssm:region-code:account-id:document/document-name"

Crea uno stack che includa le trasformazioni

Usa il comando deploy per creare uno stack che includa le trasformazioni. Quando crei uno stack da un modello che include trasformazioni, devi utilizzare un set di modifiche. Il comando deploy combina due passaggi (creazione di un set di modifiche e relativa esecuzione) in un unico comando.

AWS CLI

Il comando deploy seguente crea uno stack con il nome, il modello e i parametri di input specificati.

aws cloudformation deploy --stack-name myteststack \ --template /path_to_template/my-template.json \ --parameter-overrides Key1=Value1 Key2=Value2

Eliminazione di uno stack

Utilizza il comando delete-stack per eliminare uno stack. Per ulteriori informazioni, consulta Eliminazione di uno stack.

CLI
AWS CLI

Come eliminare uno stack

L’esempio delete-stack seguente elimina lo stack specificato.

aws cloudformation delete-stack \ --stack-name my-stack

Questo comando non produce alcun output.

PowerShell
Strumenti per PowerShell V4

Esempio 1: elimina lo stack specificato.

Remove-CFNStack -StackName "myStack"
  • Per i dettagli sull'API, vedere DeleteStackin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: elimina lo stack specificato.

Remove-CFNStack -StackName "myStack"
  • Per i dettagli sull'API, vedere DeleteStackin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Se l’eliminazione fallisce e restituisce uno stato DELETE_FAILED, puoi scegliere di eliminare lo stack con la forza utilizzando l’opzione --deletion-mode. Questi sono i seguenti valori che possono essere usati con deletion-mode:

  • STANDARD: elimina lo stack normalmente. Si tratta della modalità di eliminazione predefinita.

  • FORCE_DELETE_STACK: elimina lo stack e salta tutte le risorse che non riescono a eliminare.

AWS CLI

La forza per il comando delete-stack seguente elimina lo stack myteststack utilizzando il valore FORCE_DELETE_STACK con il parametro deletion-mode:

aws cloudformation delete-stack --stack-name myteststack \ --deletion-mode FORCE_DELETE_STACK

Questo comando non produce alcun output.

Dopo l’utilizzo di FORCE_DELETE_STACK, puoi utilizzare il comando list-stack-resources per elencare le risorse che sono state ignorate durante il processo di eliminazione dello stack. Le risorse conservate mostreranno lo stato DELETE_SKIPPED. Per ulteriori informazioni, consulta Elenca le risorse dello stack.

Descrivi gli eventi dello stack

Usa il comando describe-stack-events per descrivere gli eventi dello stack. Per ulteriori informazioni, consulta Monitoraggio dell’avanzamento dello stack.

CLI
AWS CLI

Come descrivere gli eventi dello stack

L’esempio describe-stack-events seguente visualizza i 2 eventi più recenti per lo stack specificato.

aws cloudformation describe-stack-events \ --stack-name my-stack \ --max-items 2 { "StackEvents": [ { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4e1516d0-e4d6-xmpl-b94f-0a51958a168c", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.556Z", "ResourceStatus": "UPDATE_COMPLETE" }, { "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "EventId": "4dd3c810-e4d6-xmpl-bade-0aaf8b31ab7a", "StackName": "my-stack", "LogicalResourceId": "my-stack", "PhysicalResourceId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "ResourceType": "AWS::CloudFormation::Stack", "Timestamp": "2019-10-02T05:34:29.127Z", "ResourceStatus": "UPDATE_COMPLETE_CLEANUP_IN_PROGRESS" } ], "NextToken": "eyJOZXh0VG9XMPLiOiBudWxsLCAiYm90b190cnVuY2F0ZV9hbW91bnQiOiAyfQ==" }
PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce tutti gli eventi correlati allo stack per lo stack specificato.

Get-CFNStackEvent -StackName "myStack"
  • Per i dettagli sull'API, vedere DescribeStackEventsin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: restituisce tutti gli eventi correlati allo stack per lo stack specificato.

Get-CFNStackEvent -StackName "myStack"
  • Per i dettagli sull'API, vedere DescribeStackEventsin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Descrivi una risorsa di stack

CLI
AWS CLI

Come ottenere informazioni su una risorsa di stack

L’esempio describe-stack-resource seguente visualizza i dettagli della risorsa denominata MyFunction nello stack specificato.

aws cloudformation describe-stack-resource \ --stack-name MyStack \ --logical-resource-id MyFunction

Output:

{ "StackResourceDetail": { "StackName": "MyStack", "StackId": "arn:aws:cloudformation:us-east-2:123456789012:stack/MyStack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "MyFunction", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "Metadata": "{}", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } }
PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce la descrizione di una risorsa identificata nel modello associato allo stack specificato dall'ID logico «MyDBInstance».

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
  • Per i dettagli sull'API, vedere DescribeStackResourcein AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: restituisce la descrizione di una risorsa identificata nel modello associato allo stack specificato dall'ID logico «MyDBInstance».

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
  • Per i dettagli sull'API, vedere DescribeStackResourcein AWS Strumenti per PowerShell Cmdlet Reference (V5).

Descrivi le risorse di stack

CLI
AWS CLI

Come ottenere informazioni su una risorsa di stack

L’esempio describe-stack-resources seguente visualizza i dettagli delle risorse nello stack specificato.

aws cloudformation describe-stack-resources \ --stack-name my-stack

Output:

{ "StackResources": [ { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "Timestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "Timestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "StackName": "my-stack", "StackId": "arn:aws:cloudformation:us-west-2:123456789012:stack/my-stack/d0a825a0-e4cd-xmpl-b9fb-061c69e99204", "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "Timestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce le descrizioni AWS delle risorse per un massimo di 100 risorse associate allo stack specificato. Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get- CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.

Get-CFNStackResourceList -StackName "myStack"

Esempio 2: restituisce la descrizione dell' EC2 istanza Amazon identificata nel modello associato allo stack specificato dall'ID logico «Ec2Instance».

Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"

Esempio 3: restituisce la descrizione di un massimo di 100 risorse associate allo stack contenente un' EC2 istanza Amazon identificata dall'ID di istanza «i-123456". Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get- CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Esempio 4: restituisce la descrizione dell' EC2 istanza Amazon identificata dall'ID logico «Ec2Instance» nel modello per uno stack. Lo stack viene identificato utilizzando l'ID della risorsa fisica di una risorsa che contiene, in questo caso anche un' EC2 istanza Amazon con ID di istanza «i-123456". È inoltre possibile utilizzare una risorsa fisica diversa per identificare lo stack in base al contenuto del modello, ad esempio un bucket Amazon S3.

Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
Strumenti per V5 PowerShell

Esempio 1: restituisce le descrizioni AWS delle risorse per un massimo di 100 risorse associate allo stack specificato. Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get- CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.

Get-CFNStackResourceList -StackName "myStack"

Esempio 2: restituisce la descrizione dell' EC2 istanza Amazon identificata nel modello associato allo stack specificato dall'ID logico «Ec2Instance».

Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"

Esempio 3: restituisce la descrizione di un massimo di 100 risorse associate allo stack contenente un' EC2 istanza Amazon identificata dall'ID di istanza «i-123456". Per ottenere i dettagli di tutte le risorse associate a uno stack, usa Get- CFNStackResourceSummary, che supporta anche la paginazione manuale dei risultati.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Esempio 4: restituisce la descrizione dell' EC2 istanza Amazon identificata dall'ID logico «Ec2Instance» nel modello per uno stack. Lo stack viene identificato utilizzando l'ID della risorsa fisica di una risorsa che contiene, in questo caso anche un' EC2 istanza Amazon con ID di istanza «i-123456". È inoltre possibile utilizzare una risorsa fisica diversa per identificare lo stack in base al contenuto del modello, ad esempio un bucket Amazon S3.

Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"

Descrivi gli stack

CLI
AWS CLI

Per descrivere gli stack AWS CloudFormation

Il comando describe-stacks seguente mostra le informazioni di riepilogo per lo stack myteststack:

aws cloudformation describe-stacks --stack-name myteststack

Output:

{ "Stacks": [ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Tags": [], "Outputs": [ { "Description": "Name of S3 bucket to hold website content", "OutputKey": "BucketName", "OutputValue": "myteststack-s3bucket-jssofi1zie2w" } ], "StackStatusReason": null, "CreationTime": "2013-08-23T01:02:15.422Z", "Capabilities": [], "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE", "DisableRollback": false } ] }

Per ulteriori informazioni, consulta Stacks nella Guida per l'AWS CloudFormation utente.

Go
SDK per Go V2
Nota

C'è altro su GitHub. Trova l'esempio completo e scopri di più sulla configurazione e l'esecuzione nel Repository di esempi di codice AWS.

import ( "context" "log" "github.com/aws/aws-sdk-go-v2/aws" "github.com/aws/aws-sdk-go-v2/service/cloudformation" ) // StackOutputs defines a map of outputs from a specific stack. type StackOutputs map[string]string type CloudFormationActions struct { CfnClient *cloudformation.Client } // GetOutputs gets the outputs from a CloudFormation stack and puts them into a structured format. func (actor CloudFormationActions) GetOutputs(ctx context.Context, stackName string) StackOutputs { output, err := actor.CfnClient.DescribeStacks(ctx, &cloudformation.DescribeStacksInput{ StackName: aws.String(stackName), }) if err != nil || len(output.Stacks) == 0 { log.Panicf("Couldn't find a CloudFormation stack named %v. Here's why: %v\n", stackName, err) } stackOutputs := StackOutputs{} for _, out := range output.Stacks[0].Outputs { stackOutputs[*out.OutputKey] = *out.OutputValue } return stackOutputs }
  • Per i dettagli sull'API, consulta la DescribeStackssezione AWS SDK per Go API Reference.

PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce una raccolta di istanze di stack che descrivono tutti gli stack dell’utente.

Get-CFNStack

Esempio 2: restituisce un’istanza di stack che descrive lo stack specificato

Get-CFNStack -StackName "myStack"
  • Per i dettagli sull'API, vedere DescribeStacksin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: restituisce una raccolta di istanze di stack che descrivono tutti gli stack dell’utente.

Get-CFNStack

Esempio 2: restituisce un’istanza di stack che descrive lo stack specificato

Get-CFNStack -StackName "myStack"
  • Per i dettagli sull'API, vedere DescribeStacksin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Per impostazione predefinita, il comando describe-stacks restituisce i valori del parametro. Per evitare che vengano restituiti valori di parametri sensibili come le password, includi una NoEcho proprietà impostata su nei tuoi modelli. TRUE CloudFormation

Importante

L’utilizzo dell’attributo NoEcho non maschera le informazioni memorizzate nei seguenti elementi:

  • La sezione dei Metadata modelli. CloudFormation non trasforma, modifica o oscura le informazioni incluse nella Metadata sezione. Per ulteriori informazioni, vedere Metadati.

  • Sezione dei modelli Outputs. Per ulteriori informazioni, consulta Output.

  • Attributo Metadata di una definizione di risorsa. Per ulteriori informazioni, consulta Attributo Metadata.

Si consiglia vivamente di non utilizzare questi meccanismi per includere informazioni sensibili, come password o segreti.

Importante

Anziché incorporare informazioni riservate direttamente nei CloudFormation modelli, consigliamo di utilizzare parametri dinamici nel modello di pila per fare riferimento a informazioni sensibili archiviate e gestite all'esterno CloudFormation, ad esempio nel AWS Systems Manager Parameter Store o. Gestione dei segreti AWS

Per ulteriori informazioni, consulta la best practice Non incorporare le credenziali nei modelli.

Ottieni un modello

CLI
AWS CLI

Per visualizzare il corpo del modello per uno stack AWS CloudFormation

Il comando get-template seguente mostra il modello per lo stack myteststack:

aws cloudformation get-template --stack-name myteststack

Output:

{ "TemplateBody": { "AWSTemplateFormatVersion": "2010-09-09", "Outputs": { "BucketName": { "Description": "Name of S3 bucket to hold website content", "Value": { "Ref": "S3Bucket" } } }, "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Resources": { "S3Bucket": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead" } } } } }
PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce il modello associato allo stack specificato.

Get-CFNTemplate -StackName "myStack"
  • Per i dettagli sull'API, vedere GetTemplatein AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: restituisce il modello associato allo stack specificato.

Get-CFNTemplate -StackName "myStack"
  • Per i dettagli sull'API, vedere GetTemplatein AWS Strumenti per PowerShell Cmdlet Reference (V5).

Elenca le risorse dello stack

CLI
AWS CLI

Come elencare le risorse in uno stack

Il comando seguente visualizza l’elenco delle risorse nello stack specificato.

aws cloudformation list-stack-resources \ --stack-name my-stack

Output:

{ "StackResourceSummaries": [ { "LogicalResourceId": "bucket", "PhysicalResourceId": "my-stack-bucket-1vc62xmplgguf", "ResourceType": "AWS::S3::Bucket", "LastUpdatedTimestamp": "2019-10-02T04:34:11.345Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "function", "PhysicalResourceId": "my-function-SEZV4XMPL4S5", "ResourceType": "AWS::Lambda::Function", "LastUpdatedTimestamp": "2019-10-02T05:34:27.989Z", "ResourceStatus": "UPDATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } }, { "LogicalResourceId": "functionRole", "PhysicalResourceId": "my-functionRole-HIZXMPLEOM9E", "ResourceType": "AWS::IAM::Role", "LastUpdatedTimestamp": "2019-10-02T04:34:06.350Z", "ResourceStatus": "CREATE_COMPLETE", "DriftInformation": { "StackResourceDriftStatus": "IN_SYNC" } } ] }
PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce le descrizioni di tutte le risorse associate allo stack specificato.

Get-CFNStackResourceSummary -StackName "myStack"
  • Per i dettagli sull'API, vedere ListStackResourcesin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: restituisce le descrizioni di tutte le risorse associate allo stack specificato.

Get-CFNStackResourceSummary -StackName "myStack"
  • Per i dettagli sull'API, vedere ListStackResourcesin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Elenca gli stack

Utilizza il comando list-stacks per elencare gli stack. Per elencare solo gli stack con i codici di stato specificati, includi l’opzione --stack-status-filter. Puoi specificare uno o più codici di stato dello stack per l’opzione --stack-status-filter. Per ulteriori informazioni, consulta Codici di stato dello stack.

CLI
AWS CLI

Per elencare le pile AWS CloudFormation

Il comando list-stacks seguente mostra un riepilogo di tutti gli stack con stato CREATE_COMPLETE:

aws cloudformation list-stacks --stack-status-filter CREATE_COMPLETE

Output:

[ { "StackId": "arn:aws:cloudformation:us-east-1:123456789012:stack/myteststack/466df9e0-0dff-08e3-8e2f-5088487c4896", "TemplateDescription": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "StackStatusReason": null, "CreationTime": "2013-08-26T03:27:10.190Z", "StackName": "myteststack", "StackStatus": "CREATE_COMPLETE" } ]
PowerShell
Strumenti per PowerShell V4

Esempio 1: restituisce informazioni di riepilogo per tutti gli stack.

Get-CFNStackSummary

Esempio 2: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Esempio 3: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione o aggiornamento.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
  • Per i dettagli sull'API, vedere ListStacksin AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: restituisce informazioni di riepilogo per tutti gli stack.

Get-CFNStackSummary

Esempio 2: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Esempio 3: restituisce informazioni di riepilogo per tutti gli stack attualmente in fase di creazione o aggiornamento.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
  • Per i dettagli sull'API, vedere ListStacksin AWS Strumenti per PowerShell Cmdlet Reference (V5).

Aggiornare uno stack

Utilizzare il comando update-stack per aggiornare direttamente uno stack. È possibile specificare lo stack e i valori e le funzionalità dei parametri che si desidera aggiornare; inoltre, se si sceglie di utilizzare un modello aggiornato, è possibile specificare il nome del modello. Per ulteriori informazioni, consulta Aggiornare gli stack direttamente.

CLI
AWS CLI

Per aggiornare gli stack AWS CloudFormation

Il comando update-stack seguente aggiorna il modello e i parametri di input per lo stack mystack:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,ParameterValue=SampleKeyPair ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,SampleSubnetID2

Il comando update-stack seguente aggiorna solo il valore del parametro SubnetIDs per lo stack mystack: Se non si specifica un valore di parametro, viene utilizzato il valore predefinito specificato nel modello:

aws cloudformation update-stack --stack-name mystack --template-url https://s3.amazonaws.com/sample/updated.template --parameters ParameterKey=KeyPairName,UsePreviousValue=true ParameterKey=SubnetIDs,ParameterValue=SampleSubnetID1\\,UpdatedSampleSubnetID2

Il comando update-stack seguente aggiunge due argomenti di notifica per stack allo stack mystack:

aws cloudformation update-stack --stack-name mystack --use-previous-template --notification-arns "arn:aws:sns:use-east-1:123456789012:mytopic1" "arn:aws:sns:us-east-1:123456789012:mytopic2"

Per ulteriori informazioni, consulta gli aggiornamenti AWS CloudFormation dello stack nella Guida per l'AWS CloudFormation utente.

PowerShell
Strumenti per PowerShell V4

Esempio 1: aggiorna lo stack 'MyStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV1' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Esempio 2: aggiorna lo stack 'MyStack' con il modello e i parametri di personalizzazione specificati. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Esempio 3: aggiorna lo stack 'MyStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV2' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }

Esempio 4: aggiorna lo stack 'MyStack' con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, mentre '' e 'PV1PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Esempio 5: aggiorna lo stack 'MyStack', che in questo esempio si presume contenga risorse IAM, con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, mentre '' e 'PV1PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue». Gli stack contenenti risorse IAM richiedono di specificare il parametro -Capabilities «CAPABILITY_IAM», altrimenti l'aggiornamento avrà esito negativo con un errore ''. InsufficientCapabilities

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"
  • Per i dettagli sull'API, vedere UpdateStackin Cmdlet Reference (V4).AWS Strumenti per PowerShell

Strumenti per V5 PowerShell

Esempio 1: aggiorna lo stack 'MyStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV1' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }

Esempio 2: aggiorna lo stack 'MyStack' con il modello e i parametri di personalizzazione specificati. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, '' e PV1 'PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Esempio 3: aggiorna lo stack 'MyStack' con il modello e i parametri di personalizzazione specificati. 'PK1' rappresenta il nome di un parametro dichiarato nel modello e 'PV2' ne rappresenta il valore. I parametri di personalizzazione possono essere specificati anche utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }

Esempio 4: aggiorna lo stack 'MyStack' con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, mentre '' e 'PV1PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue».

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

Esempio 5: aggiorna lo stack 'MyStack', che in questo esempio si presume contenga risorse IAM, con il modello specificato, ottenuto da Amazon S3, e i parametri di personalizzazione. 'PK1' e 'PK2' rappresentano i nomi dei parametri dichiarati nel modello, mentre '' e 'PV1PV2' rappresentano i valori richiesti. I parametri di personalizzazione possono anche essere specificati utilizzando «Key» e «Value» anziché «ParameterKey» e «ParameterValue». Gli stack contenenti risorse IAM richiedono di specificare il parametro -Capabilities «CAPABILITY_IAM», altrimenti l'aggiornamento avrà esito negativo con un errore ''. InsufficientCapabilities

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"
  • Per i dettagli sull'API, vedere UpdateStackin Cmdlet Reference (V5).AWS Strumenti per PowerShell

Nota

Per rimuovere tutte le notifiche, specifica [] per l’opzione --notification-arns.

Convalida il modello

Per verificare la presenza di errori di sintassi nel file del modello, utilizza il comando validate-template.

Durante la convalida, verifica CloudFormation innanzitutto se il modello è JSON valido. Se non lo è, CloudFormation verifica se il modello è in un formato YAML valido. Se entrambi i controlli falliscono, CloudFormation restituisce un errore di convalida del modello.

CLI
AWS CLI

Per convalidare un modello AWS CloudFormation

Il comando validate-template seguente convalida il modello sampletemplate.json:

aws cloudformation validate-template --template-body file://sampletemplate.json

Output:

{ "Description": "AWS CloudFormation Sample Template S3_Bucket: Sample template showing how to create a publicly accessible S3 bucket. **WARNING** This template creates an S3 bucket. You will be billed for the AWS resources used if you create a stack from this template.", "Parameters": [], "Capabilities": [] }

Per ulteriori informazioni, consulta Lavorare con i AWS CloudFormation modelli nella Guida per l'AWS CloudFormation utente.

PowerShell
Strumenti per PowerShell V4

Esempio 1: convalida il contenuto del modello specificato. L’output riporta in dettaglio le funzionalità, la descrizione e i parametri del modello.

Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"

Esempio 2: convalida il modello specificato a cui si accede tramite un URL Amazon S3. L’output riporta in dettaglio le funzionalità, la descrizione e i parametri del modello.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
  • Per i dettagli sull'API, vedere ValidateTemplatein AWS Strumenti per PowerShell Cmdlet Reference (V4).

Strumenti per V5 PowerShell

Esempio 1: convalida il contenuto del modello specificato. L’output riporta in dettaglio le funzionalità, la descrizione e i parametri del modello.

Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"

Esempio 2: convalida il modello specificato a cui si accede tramite un URL Amazon S3. L’output riporta in dettaglio le funzionalità, la descrizione e i parametri del modello.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
  • Per i dettagli sull'API, vedere ValidateTemplatein AWS Strumenti per PowerShell Cmdlet Reference (V5).

Di seguito è riportata una risposta di esempio che produce un errore di convalida.

{ "ResponseMetadata": { "RequestId": "4ae33ec0-1988-11e3-818b-e15a6df955cd" }, "Errors": [ { "Message": "Template format error: JSON not well-formed. (line 11, column 8)", "Code": "ValidationError", "Type": "Sender" } ], "Capabilities": [], "Parameters": [] } A client error (ValidationError) occurred: Template format error: JSON not well-formed. (line 11, column 8)
Nota

Il comando validate-template è progettato per controllare solo la sintassi del modello. Non garantisce che i valori delle proprietà specificati per una risorsa siano validi per tale risorsa. Né determina il numero di risorse presenti quando verrà creato lo stack.

Per verificare la validità operativa, devi tentare di creare lo stack. Non esiste una sandbox o un'area di test per gli CloudFormation stack, quindi ti verranno addebitate le risorse create durante i test.

Esempio di disponibilità

Non riesci a trovare quello che ti serve? Richiedi un nuovo esempio utilizzando il link Fornisci un feedback nella parte inferiore di questa pagina.