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.
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
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.