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
- PowerShell
-
- Ferramentas para PowerShell
-
Exemplo 1: cancela uma atualização na pilha especificada.
Stop-CFNUpdateStack -StackName "myStack"
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.
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.
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.
- 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" )
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.
- PowerShell
-
- Ferramentas para PowerShell
-
Exemplo 1: exclui a pilha especificada.
Remove-CFNStack -StackName "myStack"
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
:
- 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)
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"
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.
- Go
-
- SDK para Go V2
-
// 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
}
- 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)
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"
}
}
}
}
}
- PowerShell
-
- Ferramentas para PowerShell
-
Exemplo 1: retorna o modelo associado à pilha especificada.
Get-CFNTemplate -StackName "myStack"
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)
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"
}
]
- 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)
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.
- 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 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.
- 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
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)
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.