Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Fn::GetAtt
Fungsi intrinsik Fn::GetAtt
mengembalikan nilai atribut dari sumber daya di dalam templat. Ketika Tansformasi AWS::LanguageExtensions transformasi digunakan, Anda dapat menggunakan fungsi intrinsik sebagai parameter untuk. Fn::GetAtt
Untuk informasi lebih lanjut tentang nilai kembali GetAtt
untuk sumber daya atau properti tertentu, rujuk ke dokumentasi untuk sumber daya tersebut dalam Referensi sumber daya dan properti.
Pernyataan
JSON
{ "Fn::GetAtt" : [ "
logicalNameOfResource
", "attributeName
" ] }
YAML
Sintaks untuk nama fungsi penuh:
Fn::GetAtt: [
logicalNameOfResource
,attributeName
]
Sintaks untuk bentuk pendek:
!GetAtt
logicalNameOfResource
.attributeName
Parameter
logicalNameOfResource
-
Nama logis (juga disebut ID logis) dari sumber daya yang berisi atribut yang Anda inginkan.
attributeName
-
Nama atribut sumber daya spesifik yang nilainya Anda inginkan. Lihat halaman referensi sumber daya untuk detail tentang atribut yang tersedia untuk jenis sumber daya tersebut.
Nilai yang dikembalikan
Nilai atribut.
Contoh
Mengembalikan string
Contoh cuplikan ini mengembalikan string yang berisi DNS nama penyeimbang beban dengan nama logis. myELB
JSON
"Fn::GetAtt" : [ "myELB" , "DNSName" ]
YAML
!GetAtt myELB.DNSName
Mengembalikan beberapa string
Contoh templat berikut mengembalikan SourceSecurityGroup.OwnerAlias
dan SourceSecurityGroup.GroupName
dari penyeimbang beban dengan nama logis myELB
.
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
Contoh: Gunakan Identifier standar untuk beberapa sumber daya yang digunakan Fn::Sub
dalamFn::GetAtt
, dan Ref
Fn::ForEach
Contoh berikut menunjukkan bagaimana menggunakan Fn::GetAtt denganFn::Sub, bersamaan denganFn::ForEach, dalam template untuk mengurangi panjang template dan verbositas. Outputs Penggunaan Fn::Sub within Fn::GetAtt memungkinkan template berisi satu fungsi intrinsik yang dapat mereferensikan bucket yang berbeda pada setiap iterasi panggilan. Fn::ForEach
JSON
{ "AWSTemplateFormatVersion": "2010-09-09", "Transform": "AWS::LanguageExtensions", "Mappings": { "Buckets": { "Properties": { "Identifiers": ["A", "B", "C"] } } }, "Resources": { "Fn::ForEach::Buckets": [ "Identifier", {"Fn::FindInMap": ["Buckets", "Properties", "Identifiers"]}, { "S3Bucket${Identifier}": { "Type": "AWS::S3::Bucket", "Properties": { "AccessControl": "PublicRead", "MetricsConfigurations": [ { "Id": {"Fn::Sub": "EntireBucket${Identifier}"} } ], "WebsiteConfiguration": { "IndexDocument": "index.html", "ErrorDocument": "error.html", "RoutingRules": [ { "RoutingRuleCondition": { "HttpErrorCodeReturnedEquals": "404", "KeyPrefixEquals": "out1/" }, "RedirectRule": { "HostName": "ec2-11-22-333-44.compute-1.amazonaws.com", "ReplaceKeyPrefixWith": "report-404/" } } ] } }, "DeletionPolicy": "Retain", "UpdateReplacePolicy": "Retain" } } ] }, "Outputs": { "Fn::ForEach::BucketOutputs": [ "Identifier", {"Fn::FindInMap": ["Buckets", "Properties", "Identifiers"]}, { "Fn::ForEach::GetAttLoop": [ "Property", ["Arn", "DomainName", "WebsiteURL"], { "S3Bucket${Identifier}${Property}": { "Value": { "Fn::GetAtt": [{"Fn::Sub": "S3Bucket${Identifier}"}, {"Ref": "Property"}] } } } ] } ] } }
YAML
AWSTemplateFormatVersion: 2010-09-09 Transform: 'AWS::LanguageExtensions' Mappings: Buckets: Properties: Identifiers: - A - B - C Resources: 'Fn::ForEach::Buckets': - Identifier - Fn::FindInMap: - Buckets - Properties - Identifiers - 'S3Bucket${Identifier}': Type: 'AWS::S3::Bucket' Properties: AccessControl: PublicRead MetricsConfigurations: - Id: Fn::Sub: 'EntireBucket${Identifier}' WebsiteConfiguration: IndexDocument: index.html ErrorDocument: error.html RoutingRules: - RoutingRuleCondition: HttpErrorCodeReturnedEquals: '404' KeyPrefixEquals: out1/ RedirectRule: HostName: ec2-11-22-333-44.compute-1.amazonaws.com ReplaceKeyPrefixWith: report-404/ DeletionPolicy: Retain UpdateReplacePolicy: Retain Outputs: 'Fn::ForEach::BucketOutputs': - Identifier - Fn::FindInMap: - Buckets - Properties - Identifiers - 'Fn::ForEach::GetAttLoop': - Property - - Arn - DomainName - WebsiteURL - 'S3Bucket${Identifier}${Property}': Value: !GetAtt - !Sub 'S3Bucket${Identifier}' - !Ref Property
Fungsi yang didukung
Ketika Tansformasi AWS::LanguageExtensions transformasi tidak digunakan:
Saat Tansformasi AWS::LanguageExtensions transformasi digunakan, di dalam Fn::GetAtt
fungsi, Anda dapat menggunakan fungsi-fungsi berikut. Ini benar dengan nama sumber daya Fn::GetAtt
logis atau nama Fn::GetAtt
atribut.