Fn::GetAZs - AWS CloudFormation

Fn::GetAZs

Fn::GetAZs 내장 함수는 지정된 리전의 가용 영역을 알파벳순으로 나열하는 배열을 반환합니다. 고객이 다른 가용 영역에 액세스할 수 있으므로 템플릿 작성자는 Fn::GetAZs 내장 함수를 사용하여 호출하는 사용자의 액세스 권한에 따라 조정되는 템플릿을 작성할 수 있습니다. 그러면 지정된 리전에 대한 전체 가용 영역 목록을 하드 코딩할 필요가 없습니다.

중요

Fn::GetAZs 함수는 기본 서브넷을 포함하는 가용 영역만 반환합니다. 기본 서브넷을 포함하는 가용 영역이 없을 경우 모든 가용 영역이 반환됩니다.

describe-availability-zones AWS CLI 명령의 응답과 마찬가지로 Fn::GetAZs 함수에서 반환되는 결과의 순서는 보장되지 않으며 새 가용 영역이 추가되면 변경될 수 있습니다.

IAM 권한

Fn::GetAZs 함수를 사용하기 위해 필요한 권한은 Amazon EC2 인스턴스를 시작하는 플랫폼에 따라 다릅니다. 두 플랫폼 모두 Amazon EC2 DescribeAvailabilityZonesDescribeAccountAttributes 작업에 대한 권한이 필요합니다. EC2-VPC의 경우 Amazon EC2 DescribeSubnets 작업에 대한 권한도 필요합니다.

선언

JSON

{ "Fn::GetAZs" : "region" }

YAML

전체 함수 이름의 구문:

Fn::GetAZs: region

짧은 형식의 구문:

!GetAZs region

파라미터

region

가용 영역을 가져올 리전의 이름입니다.

AWS::Region 가상 파라미터를 사용하여 스택이 생성되는 리전을 지정할 수 있습니다. 빈 문자열을 지정하면 AWS::Region을 지정하는 것과 같습니다.

반환 값

리전에 대한 가용 영역 목록입니다.

예제

리전 평가

이 예에서 CloudFormation은 사용자가 us-east-1 리전에 스택을 생성한 것으로 가정하고 Fn::GetAZs를 다음 배열로 평가합니다.

[ "us-east-1a", "us-east-1b", "us-east-1c", "us-east-1d" ]

JSON

{ "Fn::GetAZs" : "" } { "Fn::GetAZs" : { "Ref" : "AWS::Region" } } { "Fn::GetAZs" : "us-east-1" }

YAML

Fn::GetAZs: "" Fn::GetAZs: Ref: "AWS::Region" Fn::GetAZs: us-east-1

 

서브넷의 가용 영역 지정

다음 예에서는 Fn::GetAZs를 사용하여 서브넷의 가용 영역을 지정합니다.

JSON

"mySubnet" : { "Type" : "AWS::EC2::Subnet", "Properties" : { "VpcId" : { "Ref" : "VPC" }, "CidrBlock" : "10.0.0.0/24", "AvailabilityZone" : { "Fn::Select" : [ 0, { "Fn::GetAZs" : "" } ] } } }

YAML

mySubnet: Type: "AWS::EC2::Subnet" Properties: VpcId: !Ref VPC CidrBlock: 10.0.0.0/24 AvailabilityZone: Fn::Select: - 0 - Fn::GetAZs: ""

 

짧은 형식의 YAML을 가진 중첩 함수

다음 예제는 짧은 형식의 YAML을 사용하여 중첩 내장 함수를 사용하는 데 유효한 패턴을 보여 줍니다. 짧은 형식 함수를 연속적으로 중첩할 수 없기 때문에 !GetAZs !Ref 같은 패턴은 유효하지 않습니다.

YAML

AvailabilityZone: !Select - 0 - !GetAZs Ref: 'AWS::Region'

YAML

AvailabilityZone: !Select - 0 - Fn::GetAZs: !Ref 'AWS::Region'

지원되는 함수

Ref 함수 내에서 Fn::GetAZs 함수를 사용할 수 있습니다.