メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

Fn::GetAZs

組み込み関数 Fn::GetAZs は、指定されたリージョンのアベイラビリティーゾーンを含んだ配列を返します。アベイラビリティーゾーンへのアクセス権は顧客ごとに異なります。テンプレート作成者は、組み込み関数 Fn::GetAZs を使用することで、呼び出し元のユーザーのアクセス権にうまく適応するテンプレートを作成することができます。この方法により、特定のリージョンのすべてのアベイラビリティーゾーンをハードコーディングする必要はありません。

重要

EC2-Classic プラットフォームでは、Fn::GetAZs 関数はリージョンのすべてのアベイラビリティーゾーンを返します。EC2-VPC プラットフォームでは、Fn::GetAZs 関数はデフォルトのサブネットがあるアベイラビリティーゾーンのみを返します。デフォルトのサブネットがあるアベイラビリティーゾーンがない場合は、すべてのアベイラビリティーゾーンを返します。

describe-availability-zones AWS CLI コマンドからのレスポンスと同様に、Fn::GetAZs 関数からの結果の順序は保証されるわけではなく、新しいアベイラビリティーゾーンが追加されたときに変更できます。

IAM アクセス権限

Fn::GetAZs 関数を使用するために必要なアクセス権限は、Amazon EC2 インスタンスを起動しているプラットフォームによって異なります。両方のプラットフォームで、Amazon EC2 DescribeAvailabilityZones および DescribeAccountAttributes アクションのアクセス権限が必要です。EC2-VPC では、Amazon EC2 DescribeSubnets アクションのアクセス権限もまた必要です。

宣言

JSON

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

YAML

完全名関数の構文:

Copy
Fn::GetAZs: region

短縮形の構文:

Copy
!GetAZs region

パラメータ

リージョン

アベイラビリティーゾーンの取得対象となるリージョンの名前。

スタックの作成先となるリージョンは AWS::Region 擬似パラメーターを使用して指定できます。空の文字列を指定した場合、AWS::Region を指定したと見なされます。

戻り値

リージョンのアベイラビリティーゾーンのリスト。

リージョンを評価する

これらの例では、スタックが us-east-1 リージョンで作成されたものと見なされ、AWS CloudFormation により Fn::GetAZs は、次の配列として評価されます。

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

JSON

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

YAML

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

 

サブネットのアベイラビリティーゾーンの指定

次の例では、Fn::GetAZs を使用してサブネットのアベイラビリティーゾーンを指定します。

JSON

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

YAML

Copy
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

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

YAML

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

サポートされている関数

Fn::GetAZs 関数で Ref 関数を使用できます。