Fn::GetAtt - AWS CloudFormation

Fn::GetAtt

Die intrinsische Fn::GetAtt-Funktion gibt den Wert eines Attributs aus einer Ressource in der Vorlage zurück. Weitere Informationen zu GetAtt-Rückgabewerten für eine bestimmte Ressource finden Sie in der Dokumentation für die betreffende Ressource in der Ressourcen- und Eigenschaftstypen.

Deklaration

JSON

{ "Fn::GetAtt" : [ "logicalNameOfResource", "attributeName" ] }

YAML

Syntax für den vollständigen Funktionsnamen:

Fn::GetAtt: [ logicalNameOfResource, attributeName ]

Syntax für die Kurzform:

!GetAtt logicalNameOfResource.attributeName

Parameter

logicalNameOfResource

Der logische Name (auch als logische ID) der Ressource, die das gewünschte Attribut enthält.

attributeName

Der Name des ressourcenspezifischen Attributs, dessen Wert Sie abrufen möchten. Auf der Referenzseite der Ressource finden Sie weitere Details zu Attributen, die für diesen Ressourcentyp verfügbar sind.

Rückgabewert

Der Attributwert.

Beispiele

Zurückgeben einer Zeichenfolge

In diesem Beispielausschnitt wird eine Zeichenfolge mit dem DNS-Namen des Load Balancer mit dem logischen Namen myELB zurückgegeben.

JSON

"Fn::GetAtt" : [ "myELB" , "DNSName" ]

YAML

!GetAtt myELB.DNSName

Zurückgeben mehrerer Zeichenfolgen

Die folgende Beispielvorlage gibt den SourceSecurityGroup.OwnerAlias und den SourceSecurityGroup.GroupName des Load Balancers mit dem logischen Namen myELB zurück.

JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Resources": { "myELB": { "Type": "AWS::ElasticLoadBalancing::LoadBalancer", "Properties": { "AvailabilityZones": [ "eu-west-1a" ], "Listeners": [ { "LoadBalancerPort": "80", "InstancePort": "80", "Protocol": "HTTP" } ] } }, "myELBIngressGroup": { "Type": "AWS::EC2::SecurityGroup", "Properties": { "GroupDescription": "ELB ingress group", "SecurityGroupIngress": [ { "IpProtocol": "tcp", "FromPort": 80, "ToPort": 80, "SourceSecurityGroupOwnerId": { "Fn::GetAtt": [ "myELB", "SourceSecurityGroup.OwnerAlias" ] }, "SourceSecurityGroupName": { "Fn::GetAtt": [ "myELB", "SourceSecurityGroup.GroupName" ] } } ] } } } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Resources: myELB: Type: AWS::ElasticLoadBalancing::LoadBalancer Properties: AvailabilityZones: - eu-west-1a Listeners: - LoadBalancerPort: '80' InstancePort: '80' Protocol: HTTP myELBIngressGroup: Type: AWS::EC2::SecurityGroup Properties: GroupDescription: ELB ingress group SecurityGroupIngress: - IpProtocol: tcp FromPort: 80 ToPort: 80 SourceSecurityGroupOwnerId: !GetAtt myELB.SourceSecurityGroup.OwnerAlias SourceSecurityGroupName: !GetAtt myELB.SourceSecurityGroup.GroupName

Unterstützte Funktionen

Für den logischen Namen der Fn::GetAtt-Ressource können Sie keine Funktionen verwenden. Sie müssen eine Zeichenfolge angeben, die eine logische ID einer Ressource darstellt.

Für den Fn::GetAtt-Attributnamen können Sie die Funktion Ref verwenden.