AWS 문서 예제 리포지토리에서 더 많은 SDK
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CloudFormation 용 도구를 사용하는 예제 PowerShell
다음 코드 예제에서는를 AWS Tools for PowerShell 와 함께 사용하여 작업을 수행하고 일반적인 시나리오를 구현하는 방법을 보여줍니다 AWS CloudFormation.
작업은 대규모 프로그램에서 발췌한 코드이며 컨텍스트에 맞춰 실행해야 합니다. 작업은 개별 서비스 함수를 직접적으로 호출하는 방법을 보여주며 관련 시나리오의 컨텍스트에 맞는 작업을 볼 수 있습니다.
각 예제에는 컨텍스트에서 코드를 설정하고 실행하는 방법에 대한 지침을 찾을 수 있는 전체 소스 코드에 대한 링크가 포함되어 있습니다.
주제
작업
다음 코드 예시에서는 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 “MyDBInstance”으로 반환합니다.
Get-CFNStackResource -StackName "myStack" -LogicalResourceId "MyDBInstance"
-
자세한 API 내용은 AWS Tools for PowerShell Cmdlet 참조DescribeStackResource의 섹션을 참조하세요.
-
다음 코드 예시에서는 Get-CFNStackResourceList
을 사용하는 방법을 보여 줍니다.
- 용 도구 PowerShell
-
예제 1: 지정된 스택과 연결된 최대 100개의 AWS 리소스에 대한 리소스 설명을 반환합니다. 스택과 연결된 모든 리소스의 세부 정보를 얻으려면 결과의 수동 페이징CFNStackResourceSummary도 지원하는 Get-를 사용합니다.
Get-CFNStackResourceList -StackName "myStack"
예제 2: 지정된 스택과 연결된 템플릿에서 식별된 Amazon EC2 인스턴스에 대한 설명을 논리적 ID “Ec2Instance”로 반환합니다.
Get-CFNStackResourceList -StackName "myStack" -LogicalResourceId "Ec2Instance"
예제 3: 인스턴스 ID “i-123456”으로 식별되는 Amazon EC2 인스턴스가 포함된 스택과 연결된 최대 100개의 리소스에 대한 설명을 반환합니다. 스택과 연결된 모든 리소스의 세부 정보를 얻으려면 결과의 수동 페이징CFNStackResourceSummary도 지원하는 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 내용은 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 Simple Monthly 계산기를 반환합니다. 템플릿은 지정된 Amazon S3 URL 및 적용된 단일 사용자 지정 파라미터에서 가져옵니다. 파라미터는 '' 및 '' 대신 'Key' 및 'ValueParameterKey'를 사용하여 지정할 수도 있습니다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 Simple Monthly 계산기를 반환합니다. 템플릿은 제공된 콘텐츠에서 구문 분석되고 사용자 지정 파라미터가 적용됩니다(이 예제에서는 템플릿 콘텐츠가 'KeyName' 및 'InstanceType'라는 두 개의 파라미터를 선언했을 것이라고 가정합니다). 사용자 지정 파라미터는 '' 및 '' 대신 '키' 및 '값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'라는 두 개의 파라미터를 선언했을 것이라고 가정합니다).
$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: 지정된 이름으로 새 스택을 생성합니다. 템플릿은 사용자 지정 파라미터가 URL 있는 Amazon S3에서 가져옵니다('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: 지정된 이름으로 새 스택을 생성합니다. 템플릿은 사용자 지정 파라미터가 URL 있는 Amazon S3에서 가져옵니다('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: 스택이 상태 UPDATE_ROLLBACK_COMPLETE, _COMPLETE,COMPLETE CREATE_ 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 참조의 Test-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:이 예제에서 가정한 스택 'myStack'을 Amazon S3에서 가져온 지정된 템플릿과 사용자 지정 파라미터로 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: 스택이 상태 UPDATE_ROLLBACK_COMPLETE, _COMPLETE,COMPLETE CREATE_ ROLLBACK또는 UPDATE_ 중 하나에 도달했는지 테스트합니다COMPLETE. 스택이 상태 중 하나에 있지 않으면 상태를 다시 테스트하기 전에 명령이 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 내용은 AWS Tools for PowerShell Cmdlet 참조의 Wait-CFNStack를 참조하세요.
-