AWS CloudFormation Tools for を使用した例 PowerShell - AWS SDK コード例

AWS Doc SDK Examples GitHub リポジトリには他にも AWS SDK例があります。

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

AWS CloudFormation Tools for を使用した例 PowerShell

次のコード例は、 AWS Tools for PowerShell で を使用してアクションを実行し、一般的なシナリオを実装する方法を示しています AWS CloudFormation。

アクションはより大きなプログラムからのコードの抜粋であり、コンテキスト内で実行する必要があります。アクションは個々のサービス機能を呼び出す方法を示していますが、コンテキスト内のアクションは、関連するシナリオで確認できます。

各例には、完全なソースコードへのリンクが含まれています。ここでは、コンテキストでコードを設定および実行する方法の手順を確認できます。

トピック

アクション

次の例は、Get-CFNStack を使用する方法を説明しています。

のツール PowerShell

例 1: ユーザーのスタックのすべてを記述するスタックインスタンスのコレクションを返します。

Get-CFNStack

例 2: 指定されたスタックを記述するスタックインスタンスを返します。

Get-CFNStack -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスDescribeStacks」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Get-CFNStackEvent を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたスタックに関するすべてのスタック関連イベントを返します。

Get-CFNStackEvent -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスDescribeStackEvents」の「」を参照してください。 AWS Tools for PowerShell

次のコード例は、Get-CFNStackResource を使用する方法を示しています。

のツール PowerShell

例 1: 論理 ID「M」によって指定されたスタックに関連付けられたテンプレートで識別されたリソースの説明を返しますyDBInstance。

Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
  • API 詳細については、「 コマンドレットリファレンスDescribeStackResource」の「」を参照してください。 AWS Tools for PowerShell

次のコード例は、Get-CFNStackResourceList を使用する方法を示しています。

のツール PowerShell

例 1: 指定されたスタックに関連付けられた最大 100 個の AWS リソースのリソースの説明を返します。スタックに関連付けられたすべてのリソースの詳細を取得するにはCFNStackResourceSummary、Get- を使用します。Get- は、結果の手動ページングもサポートしています。

Get-CFNStackResourceList -StackName "myStack"

例 2: 論理 IDEc2InstanceEC2インスタンスの説明を返します。

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

例 3: インスタンス ID「i-123456」で識別される Amazon EC2インスタンスを含むスタックに関連付けられた最大 100 個のリソースの説明を返します。スタックに関連付けられているすべてのリソースの詳細を取得するにはCFNStackResourceSummary、Get- を使用します。Get- は、結果の手動ページングもサポートしています。

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

次のコード例は、Get-CFNStackResourceSummary を使用する方法を示しています。

のツール PowerShell

例 1: 指定されたスタックに関連付けられているすべてのリソースの説明を返します。

Get-CFNStackResourceSummary -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスListStackResources」の「」を参照してください。 AWS Tools for PowerShell

次のコード例は、Get-CFNStackSummary を使用する方法を示しています。

のツール PowerShell

例 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

次の例は、Get-CFNTemplate を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたスタックに関連付けられているテンプレートを返します。

Get-CFNTemplate -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスGetTemplate」の「」を参照してください。 AWS Tools for PowerShell

次のコード例は、Measure-CFNTemplateCost を使用する方法を示しています。

のツール PowerShell

例 1: テンプレートの実行に必要なリソースを記述するクエリ文字列URLを持つ AWS Simple Monthly Calculator を返します。テンプレートは、指定された Amazon S3 URLと適用される単一のカスタマイズパラメータから取得されます。パラメータは、「キー」と「値」を使用して指定することもできますParameterKeyParameterValue。

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 Simple Monthly Calculator を返します。テンプレートは、提供されたコンテンツと適用されたカスタマイズパラメータから解析されます (この例では、テンプレートコンテンツが 'KeyName' と 'InstanceType' の 2 つのパラメータを宣言したと仮定します)。カスタマイズパラメータは、「」と「」の代わりに「キー」と「値ParameterKey」を使用して指定することもできますParameterValue。

Measure-CFNTemplateCost -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" },` @{ ParameterKey="InstanceType"; ParameterValue="m1.large" })

例 3: New-Object を使用してテンプレートパラメータのセットを構築し、テンプレートの実行に必要なリソースを記述するクエリ文字列URLを含む AWS Simple Monthly Calculator を返します。テンプレートは、カスタマイズパラメータを使用して、指定されたコンテンツから解析されます (この例では、テンプレートコンテンツが 'KeyName' と 'InstanceType' の 2 つのパラメータを宣言したと仮定します)。

$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

次の例は、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 S3URLカスタマイズパラメータ ('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 S3URLカスタマイズパラメータ ('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 詳細については、「 コマンドレットリファレンスCreateStack」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Remove-CFNStack を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたスタックを削除します。

Remove-CFNStack -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスDeleteStack」の「」を参照してください。 AWS Tools for PowerShell

次のコード例は、Resume-CFNUpdateRollback を使用する方法を示しています。

のツール PowerShell

例 1: 名前付きスタックのロールバックを続行します。ロールバックは 'UPDATE_ROLLBACK_FAILED' 状態である必要があります。継続的なロールバックが成功すると、スタックは 'UPDATE_ROLLBACK_COMPLETE' 状態になります。

Resume-CFNUpdateRollback -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスContinueUpdateRollback」の「」を参照してください。 AWS Tools for PowerShell

次の例は、Stop-CFNUpdateStack を使用する方法を説明しています。

のツール PowerShell

例 1: 指定されたスタックで行われている更新をキャンセルします。

Stop-CFNUpdateStack -StackName "myStack"
  • API 詳細については、「 コマンドレットリファレンスCancelUpdateStack」の「」を参照してください。 AWS Tools for PowerShell

次のコード例は、Test-CFNStack を使用する方法を示しています。

のツール PowerShell

例 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 詳細については、AWS Tools for PowerShell 「 コマンドレットリファレンス」の「テスト-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 詳細については、「 コマンドレットリファレンスValidateTemplate」の「」を参照してください。 AWS Tools for PowerShell

次の例は、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' はその値を表します。カスタマイズパラメータは、「キー」と「値」を使用して指定することもできますParameterKeyParameterValue。

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

例 4: Amazon S3 から取得した指定されたテンプレートとカスタマイズパラメータを使用してスタック 'myStack' を更新します。'PK1' と 'PK2' はテンプレートで宣言されたパラメータの名前を表し、'PV1' と 'PV2' は要求された値を表します。カスタマイズパラメータは、「キー」と「値」を使用して指定することもできますParameterKeyParameterValue。

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: この例で想定されているスタック 'myStack' を更新して、Amazon S3 から取得した指定されたテンプレートとカスタマイズパラメータでIAMリソースを含めます。'PK1' と 'PK2' はテンプレートで宣言されたパラメータの名前を表し、'PV1' と 'PV2' は要求された値を表します。カスタマイズパラメータは、「Key」と「Value」を使用して指定することもできますParameterKeyParameterValue。IAMリソースを含むスタックでは、-CapabilitiesCAPABILITY「_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

次の例は、Wait-CFNStack を使用する方法を説明しています。

のツール PowerShell

例 1: スタックが UPDATE_ROLLBACK_、_COMPLETE、CREATE_COMPLETE、ROLLBACKまたはCOMPLETE UPDATE_ のいずれかの状態に達したかどうかをテストしますCOMPLETE。スタックが 状態の 1 つにない場合、コマンドは 2 秒間スリープしてからステータスを再度テストします。これは、スタックがリクエストされた状態のいずれかに達するか、デフォルトのタイムアウト期間が 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 詳細については、「 コマンドレットリファレンス」の「待機CFNStack」を参照してください。 AWS Tools for PowerShell