Fn::GetAZs - AWS CloudFormation

Fn::GetAZs

Die intrinsische Funktion Fn::GetAZs gibt ein Array mit einer Liste der Availability Zones für eine angegebene Region in alphabetischer Reihenfolge zurück. Da Kunden Zugriff auf verschiedene Availability Zones haben, ermöglicht die intrinsische Funktion Fn::GetAZs die Erstellung von Vorlagen, die sich an den Zugriff des aufrufenden Benutzers anpassen. Dadurch ist es nicht erforderlich, eine vollständige Liste der Availability Zones für eine bestimmte Region im Code explizit anzugeben.

Wichtig

Bei der EC2-Classic-Plattform gibt die Fn::GetAZs Funktion alle Availability Zones einer Region zurück. Für die EC2-VPC--Plattform gibt die Funktion Fn::GetAZs nur die Availability Zones zurück, die über ein Standardsubnetz verfügen, es sei denn, keine der Availability Zones verfügt über ein Standardsubnetz. In diesem Fall werden alle Availability Zones zurückgegeben.

Ähnlich wie bei der Rückgabe des describe-availability-zones AWS CLI-Befehls ist die Reihenfolge der Ergebnisse der Fn::GetAZs-Funktion nicht garantiert und kann sich ändern, wenn neue Availability Zones hinzugefügt werden.

IAM-Berechtigungen

Die Berechtigungen, die Sie zum Aufrufen der Funktion Fn::GetAZs benötigen, hängen von der Plattform ab, auf der Sie Amazon EC2 Instances starten. Bei beiden Plattformen benötigen Sie die Berechtigungen für die Amazon EC2-Aktionen DescribeAvailabilityZones und DescribeAccountAttributes. Bei EC2-VPC benötigen Sie auch Berechtigungen für die Amazon EC2-Aktion DescribeSubnets.

Deklaration

JSON

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

YAML

Syntax für den vollständigen Funktionsnamen:

Fn::GetAZs: region

Syntax für die Kurzform:

!GetAZs region

Parameter

region

Der Name der Region, für die Sie die Availability Zones abrufen möchten.

Sie können mit dem Pseudoparameter AWS::Region die Region angeben, in welcher der Stack erstellt wird. Die Angabe einer leeren Zeichenfolge entspricht der Angabe von AWS::Region.

Rückgabewert

Die Liste der Availability Zones für die Region.

Beispiele

Bewerten einer Region

In diesen Beispielen wertet CloudFormation Fn::GetAZs zum folgenden Array aus— vorausgesetzt, dass der Benutzer den Stack in der Region us-east-1 erstellt hat:

[ "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

 

Die Availability Zone eines Subnetzes angeben

Im folgenden Beispiel wird mit Fn::GetAZs die Availability Zone (AZ) eines Subnetzes angegeben:

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: ""

 

Verschachtelte Funktionen mit YAML in Kurzschreibweise

Die folgenden Beispiele zeigen gültige Muster für die Nutzung von verschachtelten intrinsischen Funktionen mit der Kurzschreibweise von YAML. Sie können Funktionen in Kurzschreibweise nicht nacheinander verschachteln, daher ist ein Muster wie !GetAZs !Ref ungültig.

YAML

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

YAML

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

Unterstützte Funktionen

Sie können die Funktion Ref in der Funktion Fn::GetAZs verwenden.