AWS CloudFormation
User Guide (API Version 2010-05-15)
AWS 服务或AWS文档中描述的功能,可能因地区/位置而异。请点击 Amazon AWS 入门,可查看中国地区的具体差异

Fn::GetAtt

Fn::GetAtt 内部函数返回模板中的资源的属性值。

声明

JSON

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

YAML

完整函数名称的语法:

Fn::GetAtt: [ logicalNameOfResource, attributeName ]

短格式的语法:

!GetAtt logicalNameOfResource.attributeName

参数

logicalNameOfResource

包含所需属性的资源的逻辑名称 (也称为逻辑 ID)。

attributeName

您想要获得其值的资源特定属性名称。有关该资源类型之可用属性的详细信息,请参阅资源的引用页面。

返回值

属性值。

示例

此示例代码段返回的字符串包含逻辑名称为 myELB 的负载均衡器的 DNS 名称。

JSON

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

YAML

!GetAtt myELB.DNSName

以下示例模板将返回逻辑名称为 myELB 的负载均衡器 SourceSecurityGroup.OwnerAliasSourceSecurityGroup.GroupName

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

支持的函数

对于 Fn::GetAtt 逻辑资源名称,不能使用函数。必须指定作为资源逻辑 ID 的字符串。

对于 Fn::GetAtt 属性名称,可以使用 Ref 函数。

属性

您可以使用 Fn::GetAtt 检索以下属性:

资源类型名称 属性 说明

AWS::ApiGateway::DomainName

DistributionDomainName

映射到自定义域名的 Amazon CloudFront 分配域名。

示例:d111111abcdef8.cloudfront.net

AWS::ApiGateway::RestApi

RootResourceId

RestApi 资源的根资源 ID。

示例:a0bc123d4e

AWS::CloudFormation::WaitCondition

Data

JSON 格式的字符串,包含指定等待条件的等待条件信号中的 UniqueIdData 值。有关等待条件信号的更多信息,请参阅 等待条件发送 JSON 格式

具有两个信号的等待条件示例:

{"Signal1":"Step 1 complete.","Signal2":"Step 2 complete."}

AWS::CloudFormation::Stack

Outputs.NestedStackOutputName

您指定的嵌套堆栈的输出值,其中,NestedStackOutputName 是输出值的名称。

AWS::CloudFront::Distribution

DomainName

示例:d2fadu0nynjpfn.cloudfront.net

AWS::CloudTrail::Trail

Arn

示例:arn:aws:cloudtrail:us-west-2:123456789012:trail/myCloudTrail

AWS::CloudTrail::Trail

SnsTopicArn

与 CloudTrail 跟踪关联的 Amazon SNS 主题的 Amazon 资源名称 (ARN)。

示例:arn:aws:sns:us-west-2:123456789012:mySNSTopic

AWS::CloudWatch::Alarm

Arn

示例:arn:aws:cloudwatch:us-west-2:123456789012:alarm:myCloudWatchAlarm-CPUAlarm-UXMMZK36R55Z

AWS::CodeBuild::Project

Arn

示例:arn:aws-cn:codebuild:us-west-2:123456789012:project/myProjectName

AWS::CodeCommit::Repository

Arn

示例:arn:aws-cn:codecommit:us-east-2:123456789012:MyDemoRepo

AWS::CodeCommit::Repository

CloneUrlHttp

示例:https://codecommit.us-east-2.amazonaws.com/v1/repos/MyDemoRepo

AWS::CodeCommit::Repository

CloneUrlSsh

示例:ssh://git-codecommit.us-east-2.amazonaws.com/v1/repos//v1/repos/MyDemoRepo

AWS::CodeCommit::Repository

Name

示例:MyDemoRepo

AWS::Config::ConfigRule

Arn

示例:arn:aws-cn:config:us-east-2:123456789012:config-rule/config-rule-a1bzhi

AWS::Config::ConfigRule

ConfigRuleId

示例:config-rule-a1bzhi

AWS::Config::ConfigRule

Compliance.Type

示例:COMPLIANT

AWS::DirectoryService::MicrosoftADAWS::DirectoryService::SimpleAD

Alias

目录的别名。

示例:d-12373a053aalias4-mydirectory-12345abcgmzsk (如果将 CreateAlias 属性设置为 true)

AWS::DirectoryService::MicrosoftADAWS::DirectoryService::SimpleAD

DnsIpAddresses

目录的 DNS 服务器的 IP 地址。

示例:[ "192.0.2.1", "192.0.2.2" ]

AWS::DynamoDB::Table

Arn

示例:arn:aws:dynamodb:us-west-2:123456789012:table/myDynamoDBTable

AWS::DynamoDB::Table

StreamArn

DynamoDB 表流的 Amazon 资源名称 (ARN)。要使用该属性,必须指定 DynamoDB 表 StreamSpecification 属性。

示例:arn:aws:dynamodb:us-west-2:123456789012:table/testddbstack-myDynamoDBTable-012A1SL7SMP5Q/stream/2015-11-30T20:10:00.000

AWS::EC2::EIP

AllocationId

AWS 分配的 ID,用于表示与 Amazon VPC 配合使用的地址的分配。该值仅针对 VPC 弹性 IP 地址返回。

示例:eipalloc-5723d13e

AWS::EC2::Instance

AvailabilityZone

启动您指定的实例时所在的可用区。

示例:us-east-1b

AWS::EC2::Instance

PrivateDnsName

您指定的实例的私有 DNS 名称。

示例:ip-10-24-34-0.ec2.internal

AWS::EC2::Instance

PublicDnsName

您指定的实例的公有 DNS 名称。

示例:ec2-107-20-50-45.compute-1.amazonaws.com

AWS::EC2::Instance

PrivateIp

您指定的实例的私有 IP 地址。

示例:10.24.34.0

AWS::EC2::Instance

PublicIp

您指定的实例的公有 IP 地址。

示例:192.0.2.0

AWS::EC2::NetworkInterface

PrimaryPrivateIpAddress

您指定的网络接口的主要私有 IP 地址。

示例:10.0.0.192

AWS::EC2::NetworkInterface

SecondaryPrivateIpAddresses

您指定的网络接口的辅助私有 IP 地址。

示例:["10.0.0.161", "10.0.0.162", "10.0.0.163"]

AWS::EC2::SecurityGroup

GroupId

指定安全组的组 ID。

示例:sg-94b3a1f6

AWS::EC2::Subnet

AvailabilityZone

子网的可用区。

示例:us-east-1a

AWS::EC2::Subnet

Ipv6CidrBlocks

与子网关联的 IPv6 CIDR 块的列表。

示例:[ 2001:db8:1234:1a00::/64 ]

AWS::EC2::Subnet

NetworkAclAssociationId

与子网的 VPC 关联的网络 ACL 的 ID。

示例:acl-5fb85d36

AWS::EC2::Subnet

VpcId

子网 VPC 的 ID。

示例:vpc-11ad4878

AWS::EC2::SubnetNetworkAclAssociation

AssociationId

附加到子网的 NetworkAcl associationId

AWS::EC2::VPC

CidrBlock

用于 VPC 的一组 IP 地址。

示例:10.0.0.0/16

AWS::EC2::VPC

CidrBlockAssociations

VPC 的 IPv4 CIDR 块关联 ID 的列表。

示例:[ vpc-cidr-assoc-0280ab6b ]

AWS::EC2::VPC

DefaultNetworkAcl

与 VPC 关联的默认网络 ACL ID,在您创建 VPC 时由 AWS 创建。

示例:acl-814dafe3

AWS::EC2::VPC

DefaultSecurityGroup

与 VPC 关联的默认安全组 ID,在您创建 VPC 时由 AWS 创建。

示例:sg-b178e0d3

AWS::EC2::VPC

Ipv6CidrBlocks

与 VPC 关联的 IPv6 CIDR 块的列表。

示例:[ 2001:db8:1234:1a00::/56 ]

AWS::ECS::Cluster

Arn

示例:arn:aws:ecs:us-west-2:123456789012:cluster/MyECSCluster

AWS::ECS::Service

Name

Amazon Elastic Container Service 服务的名称。

示例:sample-webapp

AWS::ElastiCache::CacheCluster

ConfigurationEndpoint.Address

Memcached 缓存群集的配置终端节点的 DNS 地址。

示例:test.abc12a.cfg.use1.cache.amazonaws.com:11111

AWS::ElastiCache::CacheCluster

ConfigurationEndpoint.Port

Memcached 缓存群集的配置终端节点的端口号。

AWS::ElastiCache::CacheCluster

RedisEndpoint.Address

Redis 缓存群集的配置终端节点的 DNS 地址。

示例:test.abc12a.cfg.use1.cache.amazonaws.com:11111

AWS::ElastiCache::CacheCluster

RedisEndpoint.Port

Redis 缓存群集的配置终端节点的端口号。

AWS::ElastiCache::ReplicationGroup

ConfigurationEndPoint.Address

缓存节点的 DNS 主机名。

AWS::ElastiCache::ReplicationGroup

ConfigurationEndPoint.Port

缓存引擎正在侦听的端口号。

AWS::ElastiCache::ReplicationGroup

PrimaryEndPoint.Address

主要读/写缓存节点的 DNS 地址。

AWS::ElastiCache::ReplicationGroup

PrimaryEndPoint.Port

主要读/写缓存引擎正在侦听的端口号。

AWS::ElastiCache::ReplicationGroup

ReadEndPoint.Addresses

包含只读副本的终端节点列表的字符串。地址顺序从 ReadEndPoint.Ports 属性映射到端口顺序。

示例:"[abc12xmy3d1w3hv6-001.rep12a.0001.use1.cache.amazonaws.com, abc12xmy3d1w3hv6-002.rep12a.0001.use1.cache.amazonaws.com, abc12xmy3d1w3hv6-003.rep12a.0001.use1.cache.amazonaws.com]"

AWS::ElastiCache::ReplicationGroup

ReadEndPoint.Ports

包含只读副本的端口列表的字符串。端口顺序从 ReadEndPoint.Addresses 属性映射到地址顺序。

示例:"[6379, 6379, 6379]"

AWS::ElastiCache::ReplicationGroup

ReadEndPoint.Addresses.List

只读副本的终端节点的列表。

示例:["abc12xmy3d1w3hv6-001.rep12a.0001.use1.cache.amazonaws.com", "abc12xmy3d1w3hv6-002.rep12a.0001.use1.cache.amazonaws.com", "abc12xmy3d1w3hv6-003.rep12a.0001.use1.cache.amazonaws.com"]

AWS::ElastiCache::ReplicationGroup

ReadEndPoint.Ports.List

只读副本的端口的列表。

示例:["6379","6379","6379"]

AWS::ElasticBeanstalk::Environment

EndpointURL

此环境的负载均衡器的 URL。

示例:awseb-myst-myen-132MQC4KRLAMD-1371280482.us-east-2.elb.amazonaws.com

AWS::ElasticLoadBalancing::LoadBalancer

CanonicalHostedZoneName

与负载均衡器关联的 Amazon Route 53 托管区域的名称。

示例:mystack-myelb-15HMABG9ZCN57-1013119603.us-east-2.elb.amazonaws.com

AWS::ElasticLoadBalancing::LoadBalancer

CanonicalHostedZoneNameID

与负载均衡器关联的 Amazon Route 53 托管区域名称的 ID。

示例:Z3DZXE0Q79N41H

AWS::ElasticLoadBalancing::LoadBalancer

DNSName

负载均衡器的 DNS 名称。

示例:mystack-myelb-15HMABG9ZCN57-1013119603.us-east-2.elb.amazonaws.com

AWS::ElasticLoadBalancing::LoadBalancer

SourceSecurityGroup.GroupName

您可以将其作为负载均衡器后端 Amazon EC2 应用程序实例入站规则的一部分使用的安全组。

示例:amazon-elb

AWS::ElasticLoadBalancing::LoadBalancer

SourceSecurityGroup.OwnerAlias

源安全组的所有者。

示例:amazon-elb-sg

AWS::ElasticLoadBalancingV2::LoadBalancer

DNSName

应用程序负载均衡器的 DNS 名称。

示例:my-load-balancer-424835706.us-west-2.elb.amazonaws.com

AWS::ElasticLoadBalancingV2::LoadBalancer

CanonicalHostedZoneID

与负载均衡器关联的 Amazon Route 53 托管区域名称的 ID。

示例:Z2P70J7EXAMPLE

AWS::ElasticLoadBalancingV2::LoadBalancer

LoadBalancerFullName

应用程序负载均衡器的全名。

示例:app/my-load-balancer/50dc6c495c0c9188

AWS::ElasticLoadBalancingV2::LoadBalancer

LoadBalancerName

应用程序负载均衡器的名称。

示例:my-load-balancer

AWS::ElasticLoadBalancingV2::LoadBalancer

SecurityGroups

应用程序负载均衡器的安全组的 ID。

示例:sg-123456a

AWS::ElasticLoadBalancingV2::TargetGroup

LoadBalancerArns

将流量路由至此目标组的负载均衡器的 Amazon 资源名称 (ARN)。

示例:[ "arn:aws-cn:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188" ]

AWS::ElasticLoadBalancingV2::TargetGroup

TargetGroupFullName

目标组的全名。

示例:targetgroup/my-target-group/cbf133c568e0d028

AWS::Elasticsearch::Domain

DomainArn

域的 Amazon 资源名称 (ARN)。

示例:arn:aws-cn:es:us-west-2:123456789012:domain/mystack-elasti-1ab2cdefghij

AWS::Elasticsearch::Domain

DomainEndpoint

用于向 Amazon Elasticsearch Service 域提交索引、搜索和数据上传请求的特定于域的终端节点。

示例:search-mystack-elasti-1ab2cdefghij-ab1c2deckoyb3hofw7wpqa3cm.us-west-2.es.amazonaws.com

AWS::EMR::Cluster

MasterPublicDNS

主节点(实例)的公有 DNS 名称。

示例:ec2-12-123-123-123.us-west-2.compute.amazonaws.com

AWS::Events::Rule

Arn

示例:arn:aws-cn:events:us-east-2:123456789012:rule/example

AWS::IAM::AccessKey

SecretAccessKey

指定 Access Key 的秘密访问密钥。

示例:wJalrXUtnFEMI/K7MDENG/bPxRfiCYzEXAMPLEKEY

AWS::IAM::Group

Arn

示例:arn:aws-cn:iam::123456789012:group/mystack-mygroup-1DZETITOWEKVO

AWS::IAM::InstanceProfile

Arn

示例:arn:aws-cn:iam::1234567890:instance-profile/MyProfile-ASDNSDLKJ

AWS::IAM::Role

Arn

示例:arn:aws-cn:iam::1234567890:role/MyRole-AJJHDSKSDF

AWS::IAM::User

Arn

示例:arn:aws-cn:iam::123456789012:user/mystack-myuser-1CCXAFG2H2U4D

AWS::IoT::Certificate

Arn 示例:arn:aws-cn:iot:ap-southeast-2:123456789012:cert/a1234567b89c012d3e4fg567hij8k9l01mno1p23q45678901rs234567890t1u2

AWS::IoT::Policy

Arn

示例:arn:aws:iot:us-west-2:123456789012:policy/MyIoTPolicy

AWS::IoT::TopicRule

Arn

示例:arn:aws:iot:us-west-2:123456789012:rule/MyIoTRule

AWS::Kinesis::Stream

Arn

示例:arn:aws-cn:kinesis:us-east-2:123456789012:stream/mystream

AWS::KMS::Key

Arn

示例: arn:aws-cn:kms:us-west-2:123456789012:key/12a34567-8c90-1defg-af84-0bf06c1747f3

AWS::Lambda::Function

Arn

示例:arn:aws-cn:lambda:us-west-2:123456789012:MyStack-AMILookUp-NT5EUXTNTXXD

AWS::Lambda::Version

Version

Lambda 函数版本。

示例:1

AWS::Logs::Destination

Arn

示例:arn:aws:logs:us-west-2:123456789012:destination:MyDestination

AWS::Logs::LogGroup

Arn

示例:arn:aws-cn:logs:us-east-2:123456789012:log-group:/mystack-testgroup-12ABC1AB12A1:*

AWS::OpsWorks::Instance

AvailabilityZone

AWS OpsWorks 实例的可用区。

示例: us-east-2a.

AWS::OpsWorks::Instance

PrivateDnsName

AWS OpsWorks 实例的私有 DNS 名称。

AWS::OpsWorks::Instance

PrivateIp

AWS OpsWorks 实例的私有 IP 地址。

AWS::OpsWorks::Instance

PublicDnsName

AWS OpsWorks 实例的公有 DNS 名称。

AWS::OpsWorks::Instance

PublicIp

AWS OpsWorks 实例的公有 IP 地址。

注意

要使用此属性,AWS OpsWorks 实例必须位于自动分配公有 IP 地址的 AWS OpsWorks 层。

示例:192.0.2.0

AWS::OpsWorks::UserProfile

SshUserName

AWS OpsWorks 实例的 SSH 用户名称。

AWS::Redshift::Cluster

Endpoint.Address

群集的连接终端节点。

示例:examplecluster.cg034hpkmmjt.us-east-2.redshift.amazonaws.com

AWS::Redshift::Cluster

Endpoint.Port

群集的连接端口。

示例:5439

AWS::RDS::DBCluster

Endpoint.Address

数据库群集的连接终端节点。

示例:mystack-mydbcluster-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com

AWS::RDS::DBCluster

Endpoint.Port

数据库群集用于接受连接的端口号。

示例:3306

AWS::RDS::DBCluster

ReadEndpoint.Address

数据库群集的读取器终端节点。

示例:mystack-mydbcluster-ro-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com

AWS::RDS::DBInstance

Endpoint.Address

数据库的连接终端节点。

示例:mystack-mydb-1apw1j4phylrk.cg034hpkmmjt.us-east-2.rds.amazonaws.com

AWS::RDS::DBInstance

Endpoint.Port

数据库实例接受连接的端口编号。

示例:3306

AWS::Route53::HostedZone

NameServers

特定托管区域的名称服务器集。

示例:ns1.example.com

AWS::S3::Bucket

Arn

示例:arn:aws-cn:s3:::mybucket

AWS::S3::Bucket

DomainName

指定存储段的 DNS 名称。

示例:mystack-mybucket-kdwwxmddtr2g.s3.amazonaws.com

AWS::S3::Bucket

DualStackDomainName

指定存储桶的 IPv6 DNS 名称。

示例:mystack-mybucket-kdwwxmddtr2g.s3.dualstack.us-east-2.amazonaws.com/

AWS::S3::Bucket

WebsiteURL

指定存储桶的 Amazon S3 网站终端节点。

示例:http://mystack-mybucket-kdwwxmddtr2g.s3-website-us-east-2.amazonaws.com/

AWS::Serverless::Function

无属性。

AWS::Serverless::Function 资源的 ARN。

AWS::SNS::Topic TopicName

Amazon SNS 主题的名称。

示例:my-sns-topic

AWS::StepFunctions::Activity Name AWS Step Functions 活动的名称。
AWS::StepFunctions::StateMachine Name Step Functions 状态机的名称。

AWS::SQS::Queue

Arn

示例:arn:aws-cn:sqs:us-east-2:123456789012:mystack-myqueue-15PG5C2FC1CW8

AWS::SQS::Queue

QueueName

Amazon SQS 队列的名称。

示例:mystack-myqueue-1VF9BKQH5BJVI