Ini adalah Panduan Referensi CloudFormation Template baru. Harap perbarui bookmark dan tautan Anda. Untuk bantuan memulai CloudFormation, lihat Panduan AWS CloudFormation Pengguna.
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.
Pernyataan
JSON
{ "Fn::GetAtt" : [ "logicalNameOfResource", "attributeName" ] }
YAML
Sintaks untuk nama fungsi penuh:
Fn::GetAtt: [logicalNameOfResource,attributeName]
Sintaks untuk bentuk pendek:
!GetAttlogicalNameOfResource.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. Untuk informasi tentang nilai GetAtt pengembalian sumber daya, lihat dokumentasi untuk sumber daya diReferensi sumber daya dan properti.
Contoh
Mengembalikan nilai atribut
Contoh berikut mengembalikan string yang berisi nama DNS penyeimbang beban dengan nama logis. myELB
JSON
"Fn::GetAtt" : [ "myELB" , "DNSName" ]
YAML
!GetAtt myELB.DNSName
Kembalikan beberapa nilai atribut
Contoh berikut mengembalikan SourceSecurityGroup.OwnerAlias dan SourceSecurityGroup.GroupName penyeimbang beban dengan nama myELB logis.
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
Gunakan Fn::GetAtt fungsi Fn::Sub dalam
catatan
Ketika Anda menggunakan AWS::LanguageExtensions transformasi, Anda dapat menggunakan Fn::GetAtt dalam kombinasi dengan fungsi intrinsik lainnya. Untuk fungsi yang didukung, lihatFungsi yang didukung.
Contoh berikut menunjukkan cara menggunakan Fn::GetAtt denganFn::Sub, bersamaan dengan, di Outputs bagian template untuk mengurangi panjang template dan verbositas. Fn::ForEach Penggunaan Fn::Sub inside 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
Saat Anda menggunakan AWS::LanguageExtensionstransformasi, Anda dapat menggunakan fungsi-fungsi berikut dalam Fn::GetAtt fungsi tersebut. Ini benar dengan nama sumber daya Fn::GetAtt logis atau nama Fn::GetAtt atribut.
Ketika AWS::LanguageExtensions transformasi tidak digunakan:
-
Nama
Fn::GetAttatribut hanya dapat menggunakan Ref fungsi. -
Nama sumber daya
Fn::GetAttlogis tidak dapat menggunakan fungsi. Anda harus menentukan string yang merupakan ID logis sumber daya.