메뉴
AWS CloudFormation
사용 설명서 (API Version 2010-05-15)

출력

선택적 Outputs 섹션은 다른 스택으로 가져오거나(교차 스택 참조를 생성하기 위해), 응답으로 반환하거나(스택 호출을 설명하기 위해), 또는 AWS CloudFormation 콘솔에서 볼 수 있는 출력 값을 선언합니다. 예를 들면 스택의 S3 버킷 이름을 출력하면 버킷을 보다 쉽게 찾을 수 있습니다.

구문

Outputs 섹션은 키 이름 Outputs와 그 뒤에 이어지는 공백 및 콜론 하나로 구성됩니다. 템플릿 안에 최대 60개 출력을 선언할 수 있습니다.

다음 예제에서는 Outputs 섹션의 구조를 보여줍니다.

JSON

모든 출력 선언을 괄호 안에 포함합니다. 출력이 여러 개인 경우 쉼표로 구분합니다.

Copy
"Outputs" : { "Logical ID" : { "Description" : "Information about the value", "Value" : "Value to return", "Export" : { "Name" : "Value to export" } } }

YAML

Copy
Outputs: Logical ID: Description: Information about the value Value: Value to return Export: Name: Value to export

출력 필드

Outputs 섹션은 다음 필드를 포함할 수 있습니다.

Logical ID

현재 출력의 식별자입니다. 논리적 ID는 영숫자(a-z, A-Z, 0-9)여야 하며 템플릿 내에서 고유해야 합니다.

Description(선택 사항)

출력 값을 설명하는 String 유형입니다. 설명의 길이는 최대 4K입니다.

Value(필수)

aws cloudformation describe-stacks 명령에 의해 반환되는 속성의 값입니다. 출력의 값에는 리터럴, 파라미터 참조, 가상 파라미터, 매핑 값 또는 내장 함수가 포함될 수 있습니다.

Export(선택 사항)

교차 스택 참조를 위해 내보낼 리소스 출력의 이름입니다.

참고

교차 스택 참조에 적용되는 제한은 다음과 같습니다.

  • 각 AWS 계정의 Export 이름은 한 리전 내에서 고유해야 합니다.

  • 여러 리전 간에 교차 스택 참조를 만들 수 없습니다. Fn::ImportValue 내장 함수는 동일 리전 안에서 내보냈던 값을 가져오는 데만 사용할 수 있습니다.

  • 출력의 경우, 리소스에 의존하는 Ref 또는 GetAtt 함수를 ExportName 속성 값으로 사용할 수 없습니다.

    마찬가지로 ImportValue 함수는 리소스에 의존하는 Ref 또는 GetAtt 함수를 포함할 수 없습니다.

  • 다른 스택에서 출력을 참조 중인 스택은 삭제할 수 없습니다.

  • 다른 스택에서 참조하는 출력 값은 수정하거나 제거할 수 없습니다.

내장 함수를 사용하여 내보내기의 Name 값을 사용자 지정할 수 있습니다. 다음 예제에는 Fn::Join 함수가 사용됩니다.

JSON

Copy
"Export" : { "Name" : { "Fn::Join" : [ ":", [ { "Ref" : "AWS::StackName" }, "AccountVPC" ] ] } }

YAML

Copy
Export: Name: !Join [ ":", [ !Ref "AWS::StackName", AccountVPC ] ]

출력과 조건을 연결하려면 템플릿의 Conditions 섹션에 조건을 정의합니다.

예제

다음 예제에서는 스택 출력의 작동 방식을 보여줍니다.

스택 출력

다음 예제에서는 BackupLoadBalancerDNSName 이름의 출력이 CreateProdResources 조건이 true일 때만 논리적 ID가 BackupLoadBalancer인 리소스의 DNS 이름을 반환합니다. (두 번째 출력은 여러 출력을 지정하는 방법을 보여줍니다.)

JSON

Copy
"Outputs" : { "BackupLoadBalancerDNSName" : { "Description": "The DNSName of the backup load balancer", "Value" : { "Fn::GetAtt" : [ "BackupLoadBalancer", "DNSName" ]}, "Condition" : "CreateProdResources" }, "InstanceID" : { "Description": "The Instance ID", "Value" : { "Ref" : "EC2Instance" } } }

YAML

Copy
Outputs: BackupLoadBalancerDNSName: Description: The DNSName of the backup load balancer Value: !GetAtt BackupLoadBalancer.DNSName Condition: CreateProdResources InstanceID: Description: The Instance ID Value: !Ref EC2Instance

교차 스택 출력

다음 예제에서는 StackVPC는 VPC의 ID를 반환하고 나서, 스택 이름에 추가된 VPCID 이름을 사용하여 교차 스택 참조 값을 내보냅니다.

JSON

Copy
"Outputs" : { "StackVPC" : { "Description" : "The ID of the VPC", "Value" : { "Ref" : "MyVPC" }, "Export" : { "Name" : {"Fn::Sub": "${AWS::StackName}-VPCID" } } } }

YAML

Copy
Outputs: StackVPC: Description: The ID of the VPC Value: !Ref MyVPC Export: Name: !Sub "${AWS::StackName}-VPCID"

이 페이지에서: