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

Doc AWS SDK ExamplesWord リポジトリには、さらに多くの GitHub の例があります。 AWS SDK

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

AWS CloudFormation Tools for PowerShell を使用した例

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

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

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

トピック

アクション

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

ツール for PowerShell

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

Get-CFNStack

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

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

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

ツール for PowerShell

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

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

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

ツール for PowerShell

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

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

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

ツール for PowerShell

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

Get-CFNStackResourceList -StackName "myStack"

例 2: 論理 IDEc2Instance」によって指定されたスタックに関連付けられたテンプレートで識別された Amazon EC2 インスタンスの説明を返します。

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

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

Get-CFNStackResourceList -PhysicalResourceId "i-123456"

例 4: スタックのテンプレートの論理 IDEc2Instance」で識別された 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 を使用する方法を説明しています。

ツール for PowerShell

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

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

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

ツール for 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 を使用する方法を示しています。

ツール for PowerShell

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

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

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

ツール for PowerShell

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

Measure-CFNTemplateCost -TemplateURL https://s3.amazonaws.com/amzn-s3-demo-bucket/templatefile.template ` -Region us-west-1 ` -Parameter @{ ParameterKey="KeyName"; ParameterValue="myKeyPairName" }

例 2: テンプレートの実行に必要なリソースを記述するクエリ文字列を含む AWS Simple Monthly Calculator URL を返します。テンプレートは、提供されたコンテンツと適用されたカスタマイズパラメータから解析されます (この例では、テンプレートコンテンツがKeyName」とInstanceType」の 2 つのパラメータを宣言すると仮定します)。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。

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

例 3: New-Object を使用してテンプレートパラメータのセットを構築し、テンプレートの実行に必要なリソースを記述するクエリ文字列を含む AWS Simple Monthly Calculator URL を返します。テンプレートは、カスタマイズパラメータを使用して、提供されたコンテンツから解析されます (この例では、テンプレートコンテンツが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 を使用する方法を示しています。

ツール for PowerShell

例 1: 指定された名前を使用して新しいスタックを作成します。テンプレートは、カスタマイズパラメータ (PK1」およびPK2」はテンプレートコンテンツで宣言されたパラメータの名前を表し、PV1」およびPV2」はこれらのパラメータの値を表します。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。スタックの作成に失敗しても、スタックはロールバックされません。

New-CFNStack -StackName "myStack" ` -TemplateBody "{TEMPLATE CONTENT HERE}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" }) ` -DisableRollback $true

例 2: 指定された名前を使用して新しいスタックを作成します。テンプレートは、カスタマイズパラメータ (PK1」およびPK2」はテンプレートコンテンツで宣言されたパラメータの名前を表し、PV1」およびPV2」はこれらのパラメータの値を表します。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。スタックの作成に失敗すると、スタックがロールバックされます。

$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」はパラメータの値を表します。 カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。 スタックの作成が失敗すると、ロールバックされます (-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」はパラメータの値を表します。 カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。 スタックの作成が失敗すると、ロールバックされます (-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 を使用する方法を説明しています。

ツール for PowerShell

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

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

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

ツール for PowerShell

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

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

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

ツール for PowerShell

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

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

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

ツール for PowerShell

例 1: スタックが UPDATE_ROLLBACK_COMPLETE、Word_Word、CREATE_COMPLETEROLLBACKCOMPLETE、または UPDATE_COMPLETE のいずれかの状態に達したかどうかをテストします。

Test-CFNStack -StackName MyStack

出力:

False

例 2: スタックが UPDATE_COMPLETE または Word_ROLLBACKUPDATE_COMPLETE のいずれかのステータスに達したかどうかをテストします。

Test-CFNStack -StackName MyStack -Status UPDATE_COMPLETE,UPDATE_ROLLBACK_COMPLETE

出力:

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

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

ツール for 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 を使用する方法を説明しています。

ツール for PowerShell

例 1: 指定されたテンプレートとカスタマイズパラメータmyStackを使用してスタック Word を更新します。'PK1' はテンプレートで宣言されたパラメータの名前を表し、'PV1' はその値を表します。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。

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

例 2: 指定されたテンプレートとカスタマイズパラメータでスタック 'myStack' を更新します。PK1」とPK2」はテンプレートで宣言されたパラメータの名前を表し、PV1」とPV2」は要求された値を表します。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。

Update-CFNStack -StackName "myStack" ` -TemplateBody "{Template Content Here}" ` -Parameter @( @{ ParameterKey="PK1"; ParameterValue="PV1" }, @{ ParameterKey="PK2"; ParameterValue="PV2" } )

例 3: 指定されたテンプレートとカスタマイズパラメータでスタック 'myStack' を更新します。'PK1' はテンプレートで宣言されたパラメータの名前を表し、'PV2' はその値を表します。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。

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

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

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」は要求された値を表します。カスタマイズパラメータは、「Word」とParameterKey」の代わりに「Key」と「ValueParameterValue」を使用して指定することもできます。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 を使用する方法を示しています。

ツール for PowerShell

例 1: スタックが UPDATE_ROLLBACK_COMPLETE、Word_Word、CREATE_COMPLETEROLLBACKCOMPLETE、または UPDATE_COMPLETE のいずれかの状態に達したかどうかをテストします。スタックが 状態の 1 つにない場合、コマンドはステータスを再度テストする前に 2 秒間スリープします。これは、スタックがリクエストされた状態のいずれかに達するか、デフォルトのタイムアウト期間が 60 秒経過するまで繰り返されます。タイムアウト期間が超過すると、例外がスローされます。スタックがタイムアウト期間内にリクエストされた状態の 1 つに達すると、パイプラインに戻ります。

$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