D AWS oc AWS SDK 示例
本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
CloudFormation 使用 PowerShell V5 工具的示例
以下代码示例向您展示了如何使用 AWS Tools for PowerShell V5 来执行操作和实现常见场景。 CloudFormation
操作是大型程序的代码摘录,必须在上下文中运行。您可以通过操作了解如何调用单个服务函数,还可以通过函数相关场景的上下文查看操作。
每个示例都包含一个指向完整源代码的链接,您可以从中找到有关如何在上下文中设置和运行代码的说明。
主题
操作
以下代码示例演示了如何使用 Get-CFNStack。
- PowerShell V5 工具
-
示例 1:返回描述用户的所有堆栈的堆栈实例集合。
Get-CFNStack示例 2:返回描述指定堆栈的堆栈实例
Get-CFNStack -StackName "myStack"-
有关 API 的详细信息,请参阅 DescribeStacks AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Get-CFNStackEvent。
- PowerShell V5 工具
-
示例 1:返回指定堆栈的所有堆栈相关事件。
Get-CFNStackEvent -StackName "myStack"-
有关 API 的详细信息,请参阅 DescribeStackEvents AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Get-CFNStackResource。
- PowerShell V5 工具
-
示例 1:返回与指定堆栈关联的模板中用逻辑 ID “MyDBInstance”标识的资源的描述。
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"-
有关 API 的详细信息,请参阅 DescribeStackResource AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Get-CFNStackResourceList。
- PowerShell V5 工具
-
示例 1:返回与指定堆栈关联的多达 100 个资源的资源描述。 AWS 要获取与堆栈相关的所有资源的详细信息,请使用 Get-CFNStackResourceSummary,它还支持对结果进行手动分页。
Get-CFNStackResourceList -StackName "myStack"示例 2:返回与指定堆栈关联的模板中用逻辑 ID “Ec2Instance”标识的 Amazon EC2 实例的描述。
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"示例 3:对于包含用实例 ID “i-123456”标识的 Amazon EC2 实例的堆栈,返回与该堆栈关联的最多 100 个资源的描述。要获取与堆栈相关的所有资源的详细信息,请使用 Get-CFNStackResourceSummary,它还支持对结果进行手动分页。
Get-CFNStackResourceList -PhysicalResourceId "i-123456"示例 4:返回在堆栈模板中用逻辑 ID “Ec2Instance”标识的 Amazon EC2 实例的描述。该堆栈用其包含的资源的物理资源 ID 进行标识,在此例中即为实例 ID 为“i-123456”的 Amazon EC2 实例。也可以根据模板内容使用其他物理资源来识别堆栈,例如 Amazon S3 存储桶。
Get-CFNStackResourceList -PhysicalResourceId "i-123456" -LogicalResourceId "Ec2Instance"-
有关 API 的详细信息,请参阅 DescribeStackResources AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Get-CFNStackResourceSummary。
- PowerShell V5 工具
-
示例 1:返回与指定堆栈关联的所有资源的描述。
Get-CFNStackResourceSummary -StackName "myStack"-
有关 API 的详细信息,请参阅 ListStackResources AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Get-CFNStackSummary。
- PowerShell V5 工具
-
示例 1:返回所有堆栈的摘要信息。
Get-CFNStackSummary示例 2:返回当前正在创建的所有堆栈的摘要信息。
Get-CFNStackSummary -StackStatusFilter "CREATE_IN_PROGRESS"示例 3:返回当前正在创建或更新的所有堆栈的摘要信息。
Get-CFNStackSummary -StackStatusFilter @("CREATE_IN_PROGRESS", "UPDATE_IN_PROGRESS")-
有关 API 的详细信息,请参阅 ListStacks AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Get-CFNTemplate。
- PowerShell V5 工具
-
示例 1:返回与指定堆栈关联的模板。
Get-CFNTemplate -StackName "myStack"-
有关 API 的详细信息,请参阅 GetTemplate AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Measure-CFNTemplateCost。
- PowerShell V5 工具
-
示例 1:返回一个 AWS 简单月度计算器 URL,其中包含一个描述运行模板所需资源的查询字符串。模板是从指定的 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:返回一个 AWS 简单月度计算器 URL,其中包含一个描述运行模板所需资源的查询字符串。模板是从提供的内容和应用的自定义参数中解析出来的(此示例假设模板内容会声明两个参数,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 的详细信息,请参阅 EstimateTemplateCost AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 New-CFNStack。
- PowerShell V5 工具
-
示例 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 相同)。指定的通知 AEN 将收到发布的堆栈相关事件。
New-CFNStack -StackName "myStack" ` -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Parameter @{ ParameterKey="PK1"; ParameterValue="PV1" } ` -NotificationARN @( "arn1", "arn2" )-
有关 API 的详细信息,请参阅 CreateStack AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Remove-CFNStack。
- PowerShell V5 工具
-
示例 1:删除指定的堆栈。
Remove-CFNStack -StackName "myStack"-
有关 API 的详细信息,请参阅 DeleteStack AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Resume-CFNUpdateRollback。
- PowerShell V5 工具
-
示例 1:继续指定堆栈的回滚,该堆栈的状态应为“UPDATE_ROLLBACK_FAILED”。如果继续回滚成功,堆栈将进入“UPDATE_ROLLBACK_COMPLETE”状态。
Resume-CFNUpdateRollback -StackName "myStack"-
有关 API 的详细信息,请参阅 ContinueUpdateRollback AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Stop-CFNUpdateStack。
- PowerShell V5 工具
-
示例 1:取消指定堆栈的更新。
Stop-CFNUpdateStack -StackName "myStack"-
有关 API 的详细信息,请参阅 CancelUpdateStack AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Test-CFNStack。
- PowerShell V5 工具
-
示例 1:测试堆栈是否已达到 UPDATE_ROLLBACK_COMPLETE、CREATE_COMPLETE、ROLLBACK_COMPLETE 或 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 的详细信息,请参阅 Test-CFNStack AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Test-CFNTemplate。
- PowerShell V5 工具
-
示例 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 的详细信息,请参阅 ValidateTemplate AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Update-CFNStack。
- PowerShell V5 工具
-
示例 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 资源的堆栈要求您指定-Capability “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 的详细信息,请参阅 UpdateStack AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-
以下代码示例演示了如何使用 Wait-CFNStack。
- PowerShell V5 工具
-
示例 1:测试堆栈是否已达到 UPDATE_ROLLBACK_COMPLETE、CREATE_COMPLETE、ROLLBACK_COMPLETE 或 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 的详细信息,请参阅 Wait-CFNStack AWS Tools for PowerShell Cmdlet 参考文档 (V5)。
-