Seleccione sus preferencias de cookies

Usamos cookies esenciales y herramientas similares que son necesarias para proporcionar nuestro sitio y nuestros servicios. Usamos cookies de rendimiento para recopilar estadísticas anónimas para que podamos entender cómo los clientes usan nuestro sitio y hacer mejoras. Las cookies esenciales no se pueden desactivar, pero puede hacer clic en “Personalizar” o “Rechazar” para rechazar las cookies de rendimiento.

Si está de acuerdo, AWS y los terceros aprobados también utilizarán cookies para proporcionar características útiles del sitio, recordar sus preferencias y mostrar contenido relevante, incluida publicidad relevante. Para aceptar o rechazar todas las cookies no esenciales, haga clic en “Aceptar” o “Rechazar”. Para elegir opciones más detalladas, haga clic en “Personalizar”.

Fn::GetAtt

Modo de enfoque
Fn::GetAtt - AWS CloudFormation
Filtrar vista

La función intrínseca Fn::GetAtt devuelve el valor de un atributo de un recurso de la plantilla.

Declaración

JSON

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

YAML

Sintaxis del nombre de función completo:

Fn::GetAtt: [ logicalNameOfResource, attributeName ]

Sintaxis de la forma abreviada:

!GetAtt logicalNameOfResource.attributeName

Parámetros

logicalNameOfResource

El nombre lógico (también denominado ID lógico) del recurso que contiene el atributo que desea.

attributeName

El nombre del atributo específico de un recurso cuyo valor desea. Consulte la página de referencia de recursos en busca de detalles sobre los atributos disponibles para ese tipo de recurso.

Valor devuelto

El valor del atributo. Para obtener información acerca de los valores de devolución de GetAtt para los recursos, consulte la documentación de los recursos en la Referencia de recursos y propiedades.

Ejemplos

Devolución de un valor de atributo

En los siguientes ejemplos se devuelve una cadena que contiene el nombre de DNS del equilibrador de carga con el nombre lógico myELB.

JSON

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

YAML

!GetAtt myELB.DNSName

Devolución de varios valores de atributo

Em los siguientes ejemplos se devuelve el SourceSecurityGroup.OwnerAlias y el SourceSecurityGroup.GroupName del equilibrador de carga con el nombre lógico 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

Uso de Fn::Sub dentro de la función Fn::GetAtt

nota

Cuando utilice la transformación AWS::LanguageExtensions, podrá utilizar Fn::GetAtt en combinación con otras funciones intrínsecas. Para ver las funciones compatibles, consulte Funciones compatibles.

En los siguientes ejemplos se muestra cómo usar Fn::GetAtt con Fn::Sub, en combinación con Fn::ForEach, en la sección Outputs de una plantilla para reducir la longitud y nivel de detalle de la plantilla. El uso de Fn::Sub dentro de Fn::GetAtt permite que la plantilla contenga una única función intrínseca que puede hacer referencia a un bucket diferente en cada iteración de la llamada a 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

Funciones compatibles

Cuando se usa la transformación AWS::LanguageExtensions, se pueden usar las siguientes funciones dentro de la función Fn::GetAtt. Esto se aplica tanto al nombre de recurso lógico de Fn::GetAtt como al nombre de atributo de Fn::GetAtt.

Cuando no se usa la transformación AWS::LanguageExtensions:

  • El nombre de atributo de Fn::GetAtt solo puede usar la función Ref.

  • El nombre de recurso lógico de Fn::GetAtt no puede usar funciones. Debe especificar una cadena que sea el ID lógico de un recurso.

En esta página

PrivacidadTérminos del sitioPreferencias de cookies
© 2025, Amazon Web Services, Inc o sus afiliados. Todos los derechos reservados.