Criar, atualizar e excluir pilhas do CloudFormation com o AWS CLI e o PowerShell - AWS CloudFormation

Criar, atualizar e excluir pilhas do CloudFormation com o AWS CLI e o PowerShell

Os exemplos de linha de comando a seguir demonstram como realizar ações individuais do CloudFormation com a AWS CLI e o PowerShell. Estes exemplos incluem apenas as ações mais usadas. Para obter uma lista completa, consulte a Referência de APIs do AWS CloudFormation.

Cancelar uma atualização de pilha

Use o comando cancel-update-stack para cancelar uma atualização de pilha. Para obter mais informações, consulte Cancelar uma atualização de pilha.

CLI
AWS CLI

Para cancelar uma atualização de pilha que está em andamento

O comando cancel-update-stack a seguir cancela uma atualização de pilha na pilha myteststack:

aws cloudformation cancel-update-stack --stack-name myteststack
  • Para obter detalhes da API, consulte CancelUpdateStack na AWS CLI Command Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: cancela uma atualização na pilha especificada.

Stop-CFNUpdateStack -StackName "myStack"
  • Para obter detalhes da API, consulte CancelUpdateStack na AWS Tools for PowerShell Cmdlet Reference.

Continuar revertendo uma atualização

Use o comando continue-update-rollback para continuar revertendo uma atualização. Para obter mais informações, consulte Continuar revertendo uma atualização.

CLI
AWS CLI

Para fazer nova tentativa de reversão de atualização

O exemplo continue-update-rollback a seguir retoma uma operação de reversão de uma atualização de pilha anterior em que houve falha.

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

Este comando não produz saída.

PowerShell
Ferramentas para PowerShell

Exemplo 1: continua a reversão da pilha nomeada, que deve estar no estado "UPDATE_ROLLBACK_FAILED". Se a reversão contínua for bem-sucedida, a pilha entrará no estado "UPDATE_ROLLBACK_COMPLETE".

Resume-CFNUpdateRollback -StackName "myStack"

Criar uma pilha

Use o comando create-stack para criar uma pilha. Você deve fornecer o nome da pilha, a localização de um modelo válido e quaisquer parâmetros de entrada. Os nomes das chaves dos parâmetros diferenciam maiúsculas de minúsculas. Se você digitar incorretamente o nome de uma chave de parâmetro, o CloudFormation não criará a pilha e relatará que o modelo não contém esse parâmetro.

Por padrão, o comando describe-stacks retorna valores de parâmetros. Para impedir que valores confidenciais de parâmetros, como senhas, sejam retornados, inclua uma propriedade NoEcho definida como TRUE no modelo do CloudFormation.

Importante

O uso do atributo NoEcho não mascara informações armazenadas no seguinte:

  • A seção de modelo de Metadata. O CloudFormation não transforma, modifica nem edita nenhuma informação incluída na seção Metadata. Para obter mais informações, consulte Metadata.

  • A seção de modelo de Outputs. Para obter mais informações, consulte Outputs.

  • O atributo Metadata de uma definição de recurso. Para obter mais informações, consulte Atributo Metadata.

É altamente recomendável não usar esses mecanismos para incluir informações confidenciais, como senhas ou segredos.

Importante

Em vez de incorporar informações confidenciais diretamente em modelos do CloudFormation, recomendamos usar os parâmetros dinâmicos no modelo da pilha para fazer referência a informações confidenciais que são armazenadas e gerenciadas de forma externa ao CloudFormation, como no AWS Systems Manager Parameter Store ou no AWS Secrets Manager.

Para obter mais informações, consulte as práticas recomendadas do Não incorporar credenciais em seus modelos.

Os exemplos a seguir mostram como criar uma nova pilha com o nome, o modelo e os parâmetros de entrada especificados.

CLI
AWS CLI

Para criar uma pilha do AWS CloudFormation

O exemplo de create-stacks a seguir cria uma pilha com o nome de myteststack usando o arquivo de modelo sampletemplate.json:

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

Saída:

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

Para obter mais informações, consulte Pilhas no Guia do usuário do AWS CloudFormation.

  • Para obter detalhes da API, consulte CreateStack na AWS CLI Command Reference..

PowerShell
Ferramentas para PowerShell

Exemplo 1: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ("PK1" e "PK2" representam os nomes dos parâmetros declarados no conteúdo do modelo, "PV1" e "PV2" representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, ela não será revertida.

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

Exemplo 2: cria uma nova pilha com o nome especificado. O modelo é analisado a partir do conteúdo fornecido com parâmetros de personalização ("PK1" e "PK2" representam os nomes dos parâmetros declarados no conteúdo do modelo, "PV1" e "PV2" representam os valores desses parâmetros. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, ela será revertida.

$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"

Exemplo 3: cria uma nova pilha com o nome especificado. O modelo é obtido da URL do Amazon S3 com parâmetros de personalização ("PK1" representa o nome de um parâmetro declarado no conteúdo do modelo, "PV1" representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando "Key" e 'Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, ela será revertida (o mesmo que especificar -DisableRollback $false).

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

Exemplo 4: cria uma nova pilha com o nome especificado. O modelo é obtido da URL do Amazon S3 com parâmetros de personalização ("PK1" representa o nome de um parâmetro declarado no conteúdo do modelo, "PV1" representa o valor do parâmetro. Os parâmetros de personalização também podem ser especificados usando "Key" e 'Value" em vez de "ParameterKey" e "ParameterValue". Se houver falha na criação da pilha, ela será revertida (o mesmo que especificar -DisableRollback $false). Os AENs de notificação especificados receberão os eventos relacionados à pilha publicados.

New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
  • Para obter detalhes da API, consulte CreateStack na AWS Tools for PowerShell Cmdlet Reference.

Como alternativa, é possível especificar a localização AWS Systems Manager de um arquivo de modelo.

AWS CLI

O comando create-stack a seguir cria uma pilha com o nome myteststack usando um documento do AWS Systems Manager para o URL do modelo.

aws cloudformation create-stack --stack-name myteststack \ --template-url "ssm-doc://arn:aws:ssm:us-east-1:123456789012:document/documentName"

Saída:

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

Criar uma pilha que inclua transformações

Use o comando deploy para criar uma pilha que inclui transformações.

Para criar uma pilha a partir de um modelo que inclui transformações, você deve usar um conjunto de alterações. Em vez de criar um conjunto de alterações e iniciá-lo, use o comando da deploy para combinar essas etapas em um único comando.

AWS CLI

O comando deploy a seguir cria uma pilha com o nome, o modelo e os parâmetros de entrada especificados.

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

Excluir uma pilha

Use o comando delete-stack para excluir uma pilha. Para obter mais informações, consulte Excluir uma pilha no console do CloudFormation.

CLI
AWS CLI

Para excluir uma pilha

O exemplo de delete-stack a seguir exclui a pilha especificada.

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

Este comando não produz saída.

  • Para obter detalhes da API, consulte DeleteStack na AWS CLI Command Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: exclui a pilha especificada.

Remove-CFNStack -StackName "myStack"
  • Para obter detalhes da API, consulte DeleteStack na AWS Tools for PowerShell Cmdlet Reference.

Se a exclusão apresentar falhas e retornar um estado de DELETE_FAILED, você poderá optar por excluir a pilha de forma forçada usando a opção --deletion-mode. Estes são os seguintes valores que podem ser usados ​​com deletion-mode:

  • STANDARD: exclui a pilha normalmente. Este é o modo de exclusão padrão.

  • FORCE_DELETE_STACK: exclui a pilha e ignora todos os recursos que não estão sendo excluídos.

AWS CLI

O seguinte comando delete-stack força a exclusão da pilha myteststack usando o valor FORCE_DELETE_STACK com o parâmetro deletion-mode:

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

Este comando não produz saída.

Depois de usar FORCE_DELETE_STACK, você pode usar o comando list-stack-resources para listar os recursos que foram ignorados durante o processo de exclusão da pilha. Os recursos retidos mostrarão o status DELETE_SKIPPED. Para obter mais informações, consulte Listar recursos de pilha.

Descrever os eventos da pilha

Use o comando describe-stack-events para descrever os eventos da pilha. Para obter mais informações, consulte Monitorar o progresso da pilha.

CLI
AWS CLI

Para descrever os eventos da pilha

O exemplo describe-stack-events a seguir exibe os dois eventos mais recentes da pilha especificada.

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
Ferramentas para PowerShell

Exemplo 1: retorna todos os eventos relacionados à pilha especificada.

Get-CFNStackEvent -StackName "myStack"

Exemplo 2: retorna todos os eventos relacionados à pilha especificada usando paginação manual a partir do token especificado. O token inicial para a próxima página é recuperado após cada chamada, sendo que $null indica que não há mais eventos a serem recuperados.

$nextToken = $null do { Get-CFNStack -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Para obter detalhes da API, consulte DescribeStackEvents na AWS Tools for PowerShell Cmdlet Reference.

Descrever um recurso de pilha

CLI
AWS CLI

Para obter informações detalhadas sobre o recurso de uma pilha

O exemplo de describe-stack-resource a seguir exibe os detalhes do recurso denominado MyFunction da pilha especificada.

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

Saída:

{ "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
Ferramentas para PowerShell

Exemplo 1: retorna a descrição de um recurso identificado no modelo associado à pilha especificada pelo ID lógico "MyDBInstance".

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
  • Para obter detalhes da API, consulte DescribeStackResource na AWS Tools for PowerShell Cmdlet Reference.

Descrever recurso de pilha

CLI
AWS CLI

Para obter informações detalhadas sobre o recurso de uma pilha

O exemplo de describe-stack-resources a seguir exibe os detalhes dos recursos na pilha especificada.

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

Saída:

{ "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
Ferramentas para PowerShell

Exemplo 1: retorna descrições dos recursos da AWS, para até 100 recursos associados à pilha especificada. Para obter os detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também é compatível com a paginação manual dos resultados.

Get-CFNStackResourceList -StackName "myStack"

Exemplo 2: retorna a descrição da instância do Amazon EC2 identificada no modelo associado à pilha especificada pelo ID lógico "Ec2Instance".

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

Exemplo 3: retorna a descrição de até 100 recursos associados à pilha contendo uma instância do Amazon EC2 identificada pelo ID de instância "i-123456". Para obter os detalhes de todos os recursos associados a uma pilha, use o Get-CFNStackResourceSummary, que também é compatível com a paginação manual dos resultados.

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

Exemplo 4: retorna a descrição da instância do Amazon EC2 identificada pelo ID lógico "Ec2Instance" no modelo de uma pilha. A pilha é identificada usando o ID de recurso físico de um recurso que ela contém; nesse caso, também uma instância do Amazon EC2 com o ID de instância "i-123456". Um outro recurso físico também poderia ser usado para identificar a pilha, dependendo do conteúdo do modelo, por exemplo, um bucket do Amazon S3.

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

Descrever pilhas

CLI
AWS CLI

Para descrever as pilhas do AWS CloudFormation

O comando describe-stacks a seguir mostra informações resumidas da pilha myteststack:

aws cloudformation describe-stacks --stack-name myteststack

Saída:

{ "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 } ] }

Para obter mais informações, consulte Pilhas no Guia do usuário do AWS CloudFormation.

  • Para obter detalhes da API, consulte DescribeStacks na AWS CLI Command Reference.

Go
SDK para Go V2
nota

Há mais no GitHub. Encontre o exemplo completo e saiba como configurar e executar no Repositório de exemplos de código da AWS.

// 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(stackName string) StackOutputs { output, err := actor.CfnClient.DescribeStacks(context.TODO(), &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 }
  • Para obter detalhes da API, consulte DescribeStacks na AWS SDK for Go API Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: retorna um conjunto de instâncias de pilha descrevendo todas as pilhas do usuário.

Get-CFNStack

Exemplo 2: retorna uma instância de pilha descrevendo a pilha especificada

Get-CFNStack -StackName "myStack"

Exemplo 3: retorna um conjunto de instâncias de pilha descrevendo todas as pilhas do usuário usando paginação manual. O token inicial para a próxima página é recuperado após cada chamada, sendo que $null indica que não há mais detalhes a serem recuperados.

$nextToken = $null do { Get-CFNStack -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Para obter detalhes da API, consulte DescribeStacks na AWS Tools for PowerShell Cmdlet Reference.

Obter um modelo

CLI
AWS CLI

Para visualizar o corpo do modelo de uma pilha do AWS CloudFormation

O comando get-template a seguir mostra o modelo da pilha myteststack:

aws cloudformation get-template --stack-name myteststack

Saída:

{ "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" } } } } }
  • Para obter detalhes da API, consulte GetTemplate na AWS CLI Command Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: retorna o modelo associado à pilha especificada.

Get-CFNTemplate -StackName "myStack"
  • Para obter detalhes da API, consulte GetTemplate na AWS Tools for PowerShell Cmdlet Reference.

Listar recursos de pilha

CLI
AWS CLI

Para listar os recursos de uma pilha

O comando a seguir exibe a lista dos recursos da pilha especificada.

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

Saída:

{ "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
Ferramentas para PowerShell

Exemplo 1: retorna as descrições de todos os recursos associados à pilha especificada.

Get-CFNStackResourceSummary -StackName "myStack"

Exemplo 2: retorna as descrições de todos os recursos da associados à pilha especificada usando a paginação manual dos resultados. O token inicial para a próxima página é recuperado após cada chamada, sendo que $null indica que não há mais detalhes a serem recuperados.

$nextToken = $null do { Get-CFNStackResourceSummary -StackName "myStack" -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Para obter detalhes da API, consulte ListStackResources na AWS Tools for PowerShell Cmdlet Reference.

Listar pilhas

Use o comando list-stacks para listar pilhas. Para listar apenas pilhas com os códigos de status especificados, inclua a opção --stack-status-filter. Você pode especificar um ou mais códigos de status da pilha para a opção --stack-status-filter. Para obter mais informações, consulte Códigos de status da pilha.

CLI
AWS CLI

Para listar as pilhas do AWS CloudFormation

O comando list-stacks a seguir mostra um resumo de todas as pilhas que têm um status de CREATE_COMPLETE:

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

Saída:

[ { "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" } ]
  • Para obter detalhes da API, consulte ListStacks na AWS CLI Command Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: retorna informações resumidas de todas as pilhas.

Get-CFNStackSummary

Exemplo 2: retorna informações resumidas de todas as pilhas que estão sendo criadas no momento.

Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"

Exemplo 3: retorna informações resumidas de todas as pilhas que estão sendo criadas ou atualizadas no momento.

Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")

Exemplo 4: retorna informações resumidas de todas as pilhas que estão sendo criadas ou atualizadas no momento usando a paginação manual dos resultados. O token inicial para a próxima página é recuperado após cada chamada, sendo que $null indica que não há mais detalhes a serem recuperados.

$nextToken = $null do { Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS") -NextToken $nextToken $nextToken = $AWSHistory.LastServiceResponse.NextToken } while ($nextToken -ne $null)
  • Para obter detalhes da API, consulte ListStacks na AWS Tools for PowerShell Cmdlet Reference.

Atualizar um stack

Use o comando update-stack para atualizar diretamente uma pilha. Você especifica a pilha, os recursos e os valores de parâmetro que você deseja atualizar e, se quiser usar um modelo atualizado, o nome do modelo. Para obter mais informações, consulte Atualizar pilhas diretamente.

CLI
AWS CLI

Para atualizar as pilhas do AWS CloudFormation

O comando update-stack a seguir atualiza o modelo e os parâmetros de entrada para a pilha 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

O comando update-stack a seguir atualiza apenas o valor do parâmetro SubnetIDs da pilha mystack. Se você não especificar um valor para o parâmetro, o valor padrão especificado no modelo será usado:

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

O comando update-stack a seguir adiciona à pilha mystack dois tópicos de notificação de pilha:

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"

Para obter mais informações, consulte Atualizações de pilhas do AWS CloudFormation no Guia do usuário do AWS CloudFormation.

  • Para obter detalhes da API, consulte UpdateStack na AWS CLI Command Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: atualiza a pilha "myStack" com o modelo e os parâmetros de personalização especificados. "PK1" representa o nome de um parâmetro declarado no modelo e "PV1" representa seu valor. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue".

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

Exemplo 2: atualiza a pilha "myStack" com o modelo e os parâmetros de personalização especificados. "K1" e "PK2" representam os nomes dos parâmetros declarados no modelo, "PV1" e "PV2" representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue".

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

Exemplo 3: atualiza a pilha "myStack" com o modelo e os parâmetros de personalização especificados. "PK1" representa o nome de um parâmetro declarado no modelo e "PV2" representa seu valor. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue".

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

Exemplo 4: atualiza a pilha "myStack" com o modelo obtido no Amazon S3 e os parâmetros de personalização especificados. "K1" e "PK2" representam os nomes dos parâmetros declarados no modelo, "PV1" e "PV2" representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue".

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

Exemplo 5: atualiza a pilha "myStack" que, este exemplo pressupõe conter recursos do IAM, com o modelo obtido do Amazon S3 e os parâmetros de personalização especificados. "K1" e "PK2" representam os nomes dos parâmetros declarados no modelo, "PV1" e "PV2" representam os valores solicitados. Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue". As pilhas que contêm recursos do IAM exigem que você especifique o parâmetro -Capabilities "CAPABILITY_IAM", senão haverá falha na atualização com o erro “InsufficientCapabilities”.

Update-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"
  • Para obter detalhes da API, consulte UpdateStack na AWS Tools for PowerShell Cmdlet Reference.

nota

Para remover todas as notificações, especifique [] para a opção --notification-arns.

Validar seu modelo

Use o comando validate-template para verificar se há erros de sintaxe em seu arquivo de modelo.

Durante a validação, o CloudFormation primeiro verifica se o modelo é JSON válido. Caso não seja, o CloudFormation verifica se o modelo é YAML válido. Se as duas verificações falharem, o CloudFormation retornará um erro de validação de modelo.

CLI
AWS CLI

Para validar um modelo do AWS CloudFormation

O comando validate-template a seguir valida o modelo sampletemplate.json:

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

Saída:

{ "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": [] }

Para obter mais informações, consulte Trabalhar com modelos do AWS CloudFormation no Guia do usuário do AWS CloudFormation.

  • Para obter detalhes da API, consulte ValidateTemplate na AWS CLI Command Reference.

PowerShell
Ferramentas para PowerShell

Exemplo 1: valida o conteúdo do modelo especificado. A saída detalha os recursos, a descrição e os parâmetros do modelo.

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

Exemplo 2: valida o modelo especificado acessado por meio de uma URL do Amazon S3. A saída detalha os recursos, a descrição e os parâmetros do modelo.

Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/mytemplates/templatefile.template
  • Para obter detalhes da API, consulte ValidateTemplate na AWS Tools for PowerShell Cmdlet Reference.

Esta é uma resposta de exemplo que produz um erro de validação.

{ "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

O comando validate-template tem o objetivo de verificar apenas a sintaxe do modelo. Ele não garante que valores de propriedades especificados para um recurso sejam válidos para este último. Ele também não determina o número de recursos existentes quando a pilha for criada.

Para verificar a validade operacional, é necessário tentar criar a pilha. Não há uma sandbox ou uma área de teste para pilhas do AWS CloudFormation. Por isso, haverá cobranças pelos recursos que você criar durante os testes.

Exemplo de disponibilidade

Você não consegue encontrar o que precisa? Solicite um novo exemplo usando o link Fornecer feedback na parte inferior desta página.