AWS 文档 AWS SDK示例 GitHub 存储库中还有更多SDK示例
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
AWS CloudFormation 使用工具的示例 PowerShell
以下代码示例向您展示了如何使用with来执行操作和实现常见场景 AWS CloudFormation。 AWS Tools for PowerShell
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以在其中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示如何使用 Get-CFNStack
。
- 用于 PowerShell
-
示例 1:返回描述用户的所有堆栈的堆栈实例集合。
Get-CFNStack
示例 2:返回描述指定堆栈的堆栈实例
Get-CFNStack -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考DescribeStacks中的。
-
以下代码示例演示如何使用 Get-CFNStackEvent
。
- 用于 PowerShell
-
示例 1:返回指定堆栈的所有堆栈相关事件。
Get-CFNStackEvent -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考DescribeStackEvents中的。
-
以下代码示例演示如何使用 Get-CFNStackResource
。
- 用于 PowerShell
-
示例 1:返回模板中以逻辑 ID yDBInstance “M” 标识的与指定堆栈关联的资源的描述。
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考DescribeStackResource中的。
-
以下代码示例演示如何使用 Get-CFNStackResourceList
。
- 用于 PowerShell
-
示例 1:返回与指定堆栈关联的多达 100 个资源的 AWS 资源描述。要获取与堆栈关联的所有资源的详细信息,请使用 Get-CFNStackResourceSummary,它还支持手动分页结果。
Get-CFNStackResourceList -StackName "myStack"
示例 2:返回在模板中通过逻辑 ID “Ec2Instance” 标识的与指定堆栈关联的亚马逊EC2实例的描述。
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
示例 3:返回与堆栈关联的多达 100 个资源的描述,该堆栈包含一个由EC2实例 ID “i-123456” 标识的 Amazon 实例。要获取与堆栈关联的所有资源的详细信息,请使用 Get-CFNStackResourceSummary,它还支持手动分页结果。
Get-CFNStackResourceList -PhysicalResourceId "i-123456"
示例 4:返回由堆栈模板中的逻辑 ID “Ec2Instance” 标识的 Amazon EC2 实例的描述。堆栈使用其包含的资源的物理资源 ID 进行标识,在本例中也是EC2实例 ID 为 “i-123456” 的 Amazon 实例。也可以根据模板内容使用其他物理资源来识别堆栈,例如 Amazon S3 存储桶。
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考DescribeStackResources中的。
-
以下代码示例演示如何使用 Get-CFNStackResourceSummary
。
- 用于 PowerShell
-
示例 1:返回与指定堆栈关联的所有资源的描述。
Get-CFNStackResourceSummary -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考ListStackResources中的。
-
以下代码示例演示如何使用 Get-CFNStackSummary
。
- 用于 PowerShell
-
示例 1:返回所有堆栈的摘要信息。
Get-CFNStackSummary
示例 2:返回当前正在创建的所有堆栈的摘要信息。
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"
示例 3:返回当前正在创建或更新的所有堆栈的摘要信息。
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考ListStacks中的。
-
以下代码示例演示如何使用 Get-CFNTemplate
。
- 用于 PowerShell
-
示例 1:返回与指定堆栈关联的模板。
Get-CFNTemplate -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考GetTemplate中的。
-
以下代码示例演示如何使用 Measure-CFNTemplateCost
。
- 用于 PowerShell
-
示例 1:返回一个URL带有查询字符串的 AWS 简单月度计算器,该字符串描述了运行模板所需的资源。模板是从指定的 Amazon S3 中获取的,URL并应用了单个自定义参数。也可以使用 “键” 和 “值” 来指定参数,而不是 “ParameterKey” 和 “ParameterValue”。
Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Region us-west-1 ` -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }
示例 2:返回一个URL带有查询字符串的 AWS 简单月度计算器,该字符串描述了运行模板所需的资源。模板是根据提供的内容和应用的自定义参数进行解析的(此示例假设模板内容会声明两个参数,'和KeyName' InstanceType ')。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。
Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },` @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })
示例 3:使用 New-Object 生成模板参数集,并返回一个 AWS 简单月URL度计算器,其中包含描述运行模板所需资源的查询字符串。模板是从提供的内容中解析出来的,并带有自定义参数(此示例假设模板内容会声明两个参数,KeyName'和' 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 )
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考EstimateTemplateCost中的。
-
以下代码示例演示如何使用 New-CFNStack
。
- 用于 PowerShell
-
示例 1:使用指定名称创建新堆栈。模板是从提供的内容中解析出来的,带有自定义参数(PK1'PK2' 和 '' 代表模板内容中声明的参数的名称,PV1'和' PV2 '代表这些参数的值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。如果堆栈创建失败,则不会将其回滚。
New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true
示例 2:使用指定名称创建新堆栈。模板是从提供的内容中解析出来的,带有自定义参数(PK1'PK2' 和 '' 代表模板内容中声明的参数的名称,PV1'和' PV2 '代表这些参数的值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。如果堆栈创建失败,则会将其回滚。
$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"
示例 3:使用指定名称创建新堆栈。该模板是从 Amazon S3 获取的,URL带有自定义参数(PK1“” 表示模板内容中声明的参数的名称,PV1“” 表示参数的值。 也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。 如果堆栈创建失败,则会将其回滚(与指定相同-DisableRollback $false)。
New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
示例 4:使用指定名称创建新堆栈。该模板是从 Amazon S3 获取的,URL带有自定义参数(PK1“” 表示模板内容中声明的参数的名称,PV1“” 表示参数的值。 也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。 如果堆栈创建失败,则会将其回滚(与指定相同-DisableRollback $false)。指定的通知AENs将收到已发布的堆栈相关事件。
New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考CreateStack中的。
-
以下代码示例演示如何使用 Remove-CFNStack
。
- 用于 PowerShell
-
示例 1:删除指定的堆栈。
Remove-CFNStack -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考DeleteStack中的。
-
以下代码示例演示如何使用 Resume-CFNUpdateRollback
。
- 用于 PowerShell
-
示例 1:继续回滚已命名的堆栈,其状态应为 'UPDATE_ ROLLBACK _FAILED'。如果继续回滚成功,堆栈将进入状态 'UPDATE_ ROLLBACK _COMPLETE'。
Resume-CFNUpdateRollback -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考ContinueUpdateRollback中的。
-
以下代码示例演示如何使用 Stop-CFNUpdateStack
。
- 用于 PowerShell
-
示例 1:取消指定堆栈的更新。
Stop-CFNUpdateStack -StackName "myStack"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考CancelUpdateStack中的。
-
以下代码示例演示如何使用 Test-CFNStack
。
- 用于 PowerShell
-
示例 1:测试堆栈是否已达到 _ COMPLETE、UPDATE ROLLBACK _ COMPLETE、CREATE _ COMPLETE 或 ROLLBACK UPDATE _ 状态之一COMPLETE。
Test-CFNStack -StackName MyStack
输出:
False
示例 2:测试堆栈的状态是否已达到 UPDATE _ COMPLETE 或 UPDATE ROLLBACK _ COMPLETE。
Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETE
输出:
True
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考CFNStack中的测试。
-
以下代码示例演示如何使用 Test-CFNTemplate
。
- 用于 PowerShell
-
示例 1:验证指定模板的内容。输出详细说明了模板的功能、描述和参数。
Test-CFNTemplate -TemplateBody "{TEMPLATE CONTENT HERE}"
示例 2:验证通过 Amazon S3 URL 访问的指定模板。输出详细说明了模板的功能、描述和参数。
Test-CFNTemplate -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考ValidateTemplate中的。
-
以下代码示例演示如何使用 Update-CFNStack
。
- 用于 PowerShell
-
示例 1:使用指定的模板和自定义参数更新堆栈 myStack “”。'PK1' 表示模板中声明的参数的名称,而 'PV1' 表示其值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。
Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" }
示例 2:使用指定的模板和自定义参数更新堆栈 myStack “”。PK1'和' PK2 '表示模板中声明的参数的名称,' 和 PV1 'PV2' 代表其请求的值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。
Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )
示例 3:使用指定的模板和自定义参数更新堆栈 myStack “”。'PK1' 表示模板中声明的参数的名称,而 'PV2' 表示其值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。
Update-CFNStack -StackName "myStack" -TemplateBody "{Template Content Here}" -Parameters @{ ParameterKey="PK1"; ParameterValue="PV1" }
示例 4:使用从 Amazon S3 获得的指定模板和自定义参数更新堆栈 myStack “”。PK1'和' PK2 '表示模板中声明的参数的名称,' 和 PV1 'PV2' 代表其请求的值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “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" } )
示例 5:使用从 Amazon S3 获取的指定模板和自定义参数更新堆栈 myStack “”(在本示例中假设该堆栈包含IAM资源)。PK1'和' PK2 '表示模板中声明的参数的名称,' 和 PV1 'PV2' 代表其请求的值。也可以使用 “密钥” 和 “值” 来指定自定义参数,而不是 “ParameterKey” 和 “ParameterValue”。包含IAM资源的堆栈要求您指定-Capabilities “CAPABILITY_IAM” 参数,否则更新将失败并出现 “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"
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考UpdateStack中的。
-
以下代码示例演示如何使用 Wait-CFNStack
。
- 用于 PowerShell
-
示例 1:测试堆栈是否已达到 _ COMPLETE、UPDATE ROLLBACK _ COMPLETE、CREATE _ COMPLETE 或 ROLLBACK UPDATE _ 状态之一COMPLETE。如果堆栈未处于其中一种状态,则命令将休眠两秒钟,然后再次测试状态。重复此操作,直到堆栈达到所请求的状态之一或超过 60 秒的默认超时时间。如果超过超时时间,则会引发异常。如果堆栈在超时时间内达到请求的状态之一,则会将其返回到管道。
$stack = Wait-CFNStack -StackName MyStack
示例 2:此示例总共等待 5 分钟(300 秒),使堆栈达到任一指定状态。在此示例中,状态是在超时之前达到的,因此堆栈对象将返回到管道。
Wait-CFNStack -StackName MyStack -Timeout 300 -Status CREATE_COMPLETE,ROLLBACK_COMPLETE
输出:
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 : 0
示例 3:此示例显示堆栈在超时时间(在本例中为默认时段 60 秒)内未达到请求状态之一时的错误输出。
Wait-CFNStack -StackName MyStack -Status CREATE_COMPLETE,ROLLBACK_COMPLETE
输出:
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
-
有关API详细信息,请参阅 AWS Tools for PowerShell Cmdlet 参考CFNStack中的等待。
-