A versão 5 (V5) do Ferramentas da AWS para PowerShell foi lançada!
Para começar a usar a nova versão do SDK, consulte o Guia do usuário do Ferramentas da AWS para PowerShell (V5), especialmente o tópico Migração para V5.
Exemplos de CloudFormation usando o Tools for PowerShell V4
Os exemplos de código a seguir mostram como realizar ações e implementar cenários comuns usando o Ferramentas da AWS para PowerShell V4 com o CloudFormation.
Ações são trechos de código de programas maiores e devem ser executadas em contexto. Embora as ações mostrem como chamar perfis de serviço individuais, você pode ver as ações no contexto em seus cenários relacionados.
Cada exemplo inclui um link para o código-fonte completo, em que você pode encontrar instruções sobre como configurar e executar o código.
Tópicos
Ações
O código de exemplo a seguir mostra como usar Get-CFNStack.
- Ferramentas para PowerShell V4
-
Exemplo 1: retorna um conjunto de instâncias de pilha descrevendo todas as pilhas do usuário.
Get-CFNStackExemplo 2: retorna uma instância de pilha descrevendo a pilha especificada
Get-CFNStack -StackName "myStack"-
Para obter detalhes da API, consulte DescribeStacks em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Get-CFNStackEvent.
- Ferramentas para PowerShell V4
-
Exemplo 1: retorna todos os eventos relacionados à pilha especificada.
Get-CFNStackEvent -StackName "myStack"-
Para obter detalhes da API, consulte DescribeStackEvents em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Get-CFNStackResource.
- Ferramentas para PowerShell V4
-
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 em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Get-CFNStackResourceList.
- Ferramentas para PowerShell V4
-
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 S.
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"-
Para obter detalhes da API, consulte DescribeStackResources em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Get-CFNStackResourceSummary.
- Ferramentas para PowerShell V4
-
Exemplo 1: retorna as descrições de todos os recursos associados à pilha especificada.
Get-CFNStackResourceSummary -StackName "myStack"-
Para obter detalhes da API, consulte ListStackResources em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Get-CFNStackSummary.
- Ferramentas para PowerShell V4
-
Exemplo 1: retorna informações resumidas de todas as pilhas.
Get-CFNStackSummaryExemplo 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")-
Para obter detalhes da API, consulte ListStacks em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Get-CFNTemplate.
- Ferramentas para PowerShell V4
-
Exemplo 1: retorna o modelo associado à pilha especificada.
Get-CFNTemplate -StackName "myStack"-
Para obter detalhes da API, consulte GetTemplate em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Measure-CFNTemplateCost.
- Ferramentas para PowerShell V4
-
Exemplo 1: retorna uma URL da AWS Simple Monthly Calculator com uma string de consulta que descreve os recursos necessários para executar o modelo. O modelo é obtido da URL do Amazon S3 especificada e do único parâmetro de personalização aplicado. O parâmetro também pode ser especificado usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue'.
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Region us-west-1 ` -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }Exemplo 2: retorna uma URL da AWS Simple Monthly Calculator com uma string de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido e os parâmetros de personalização aplicados (este exemplo pressupõe que o conteúdo do modelo tenha declarado dois parâmetros, "KeyName"' e "InstanceType"). Os parâmetros de personalização também podem ser especificados usando "Key" e "Value" em vez de "ParameterKey" e "ParameterValue'.
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },` @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })Exemplo 3: usa New-Object para compilar um conjunto de parâmetros do modelo e retorna uma URL da AWS Simple Monthly Calculator com uma string de consulta que descreve os recursos necessários para executar o modelo. O modelo é analisado a partir do conteúdo fornecido, com os parâmetros de personalização (este exemplo pressupõe que o conteúdo do modelo tenha declarado dois parâmetros, "KeyName"' e "InstanceType').
$p1 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p1.ParameterKey = "KeyName" $p1.ParameterValue = "myKeyPairName" $p2 = New-Object -Type Amazon.CloudFormation.Model.Parameter $p2.ParameterKey = "InstanceType" $p2.ParameterValue = "m1.large" Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" -Parameter @( $p1, $p2 )-
Para obter detalhes da API, consulte EstimateTemplateCost em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar New-CFNStack.
- Ferramentas para PowerShell V4
-
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 $trueExemplo 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/amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )-
Para obter detalhes da API, consulte CreateStack em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Remove-CFNStack.
- Ferramentas para PowerShell V4
-
Exemplo 1: exclui a pilha especificada.
Remove-CFNStack -StackName "myStack"-
Para obter detalhes da API, consulte DeleteStack em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Resume-CFNUpdateRollback.
- Ferramentas para PowerShell V4
-
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"-
Para obter detalhes da API, consulte ContinueUpdateRollback na Referência de cmdlets do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Stop-CFNUpdateStack.
- Ferramentas para PowerShell V4
-
Exemplo 1: cancela uma atualização na pilha especificada.
Stop-CFNUpdateStack -StackName "myStack"-
Para obter detalhes da API, consulte CancelUpdateStack na Referência de cmdlets do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Test-CFNStack.
- Ferramentas para PowerShell V4
-
Exemplo 1: testa se a pilha atingiu um dos estados UPDATE_ROLLBACK_COMPLETE, CREATE_COMPLETE, ROLLBACK_COMPLETE ou UPDATE_COMPLETE.
Test-CFNStack -StackName MyStackSaída:
FalseExemplo 2: testa se a pilha atingiu o status UPDATE_COMPLETE ou UPDATE_ROLLBACK_COMPLETE.
Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETESaída:
True-
Para obter detalhes da API, consulte Test-CFNStack em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Test-CFNTemplate.
- Ferramentas para PowerShell V4
-
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 S. A saída detalha os recursos, a descrição e os parâmetros do modelo.
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template-
Para obter detalhes da API, consulte ValidateTemplate na Referência de cmdlets do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Update-CFNStack.
- Ferramentas para PowerShell V4
-
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/amzn-s3-demo-bucket/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/amzn-s3-demo-bucket/templatefile.template ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } ) ` -Capabilities "CAPABILITY_IAM"-
Para obter detalhes da API, consulte UpdateStack em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-
O código de exemplo a seguir mostra como usar Wait-CFNStack.
- Ferramentas para PowerShell V4
-
Exemplo 1: testa se a pilha atingiu um dos estados UPDATE_ROLLBACK_COMPLETE, CREATE_COMPLETE, ROLLBACK_COMPLETE ou UPDATE_COMPLETE. Se a pilha não estiver em um dos estados, o comando aguarda dois segundos antes de testar o status novamente. Isso é repetido até que a pilha atinja um dos estados solicitados ou até que decorra o tempo limite padrão de 60 segundos. Se o tempo limite for excedido, uma exceção será lançada. Se atingir um dos estados solicitados dentro do tempo limite, a pilha será retornada ao pipeline.
$stack = Wait-CFNStack -StackName MyStackExemplo 2: este exemplo aguarda, no total, 5 minutos (300 segundos) para que a pilha atinja qualquer um dos estados especificados. Nesse exemplo, o estado é atingido antes do tempo limite e, portanto, o objeto da pilha retorna ao pipeline.
Wait-CFNStack -StackName MyStack -Timeout 300 -Status CREATE_COMPLETE,ROLLBACK_COMPLETESaída:
Capabilities : {CAPABILITY_IAM} ChangeSetId : CreationTime : 6/1/2017 9:29:33 AM Description : AWS CloudFormation Sample Template ec2_instance_with_instance_profile: Create an EC2 instance with an associated instance profile. **WARNING** This template creates one or more Amazon EC2 instances and an Amazon SQS queue. You will be billed for the AWS resources used if you create a stack from this template. DisableRollback : False LastUpdatedTime : 1/1/0001 12:00:00 AM NotificationARNs : {} Outputs : {} Parameters : {} RoleARN : StackId : arn:aws:cloudformation:us-west-2:123456789012:stack/MyStack/7ea87b50-46e7-11e7-9c9b-503a90a9c4d1 StackName : MyStack StackStatus : CREATE_COMPLETE StackStatusReason : Tags : {} TimeoutInMinutes : 0Exemplo 3: este exemplo mostra a saída de erro quando uma pilha não atinge um dos estados solicitados dentro do tempo limite (nesse caso, o tempo padrão de 60 segundos).
Wait-CFNStack -StackName MyStack -Status CREATE_COMPLETE,ROLLBACK_COMPLETESaída:
Wait-CFNStack : Timed out after 60 seconds waiting for CloudFormation stack MyStack in region us-west-2 to reach one of state(s): UPDATE_ROLLBACK_COMPLETE,CREATE_COMPLETE,ROLLBACK_COMPLETE,UPDATE_COMPLETE At line:1 char:1 + Wait-CFNStack -StackName MyStack -State CREATE_COMPLETE,ROLLBACK_COMPLETE + ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + CategoryInfo : InvalidOperation: (Amazon.PowerShe...tCFNStackCmdlet:WaitCFNStackCmdlet) [Wait-CFNStack], InvalidOperationException + FullyQualifiedErrorId : InvalidOperationException,Amazon.PowerShell.Cmdlets.CFN.WaitCFNStackCmdlet-
Para obter detalhes da API, consulte Wait-CFNStack em Referência de cmdlet do Ferramentas da AWS para PowerShell (V4).
-