En AWS CloudFormation, las funciones intrínsecas te permiten realizar operaciones dinámicas dentro de tus plantillas YAML o JSON. Aquí te explico las funciones clave que mencionaste: !GetAtt, !FindInMap, !Join, !Split y !Select, con ejemplos prácticos para cada una.
🔧 1. !GetAtt — Obtener atributos de recursos
Devuelve el valor de un atributo de un recurso creado en la misma plantilla.
📌 Sintaxis:
!GetAtt ResourceName.AttributeName
📦 Ejemplo: Obtener la ARN de una Lambda
Outputs:
LambdaArn:
Value: !GetAtt MiFuncionLambda.Arn
🗺️ 2. !FindInMap — Buscar valores en mapas de parámetros
Busca un valor en una estructura tipo mapa (Mappings), útil para valores por región, ambiente, tipo de instancia, etc.
📌 Sintaxis:
!FindInMap [ MapName, TopLevelKey, SecondLevelKey ]
📦 Ejemplo:
Mappings:
RegionMap:
us-east-1:
AMI: ami-12345678
us-west-2:
AMI: ami-87654321
Resources:
MyEC2:
Type: AWS::EC2::Instance
Properties:
ImageId: !FindInMap [RegionMap, !Ref "AWS::Region", AMI]
🔗 3. !Join — Concatenar cadenas
Une varios valores en una sola cadena, usando un delimitador.
📌 Sintaxis:
!Join [ delimiter, [ list_of_values ] ]
📦 Ejemplo:
Value: !Join [ "", [ "arn:aws:s3:::", !Ref MiBucket ] ]
🔍 Resultado si MiBucket = my-bucket:
arn:aws:s3:::my-bucket
✂️ 4. !Split — Separar cadenas
Divide una cadena en una lista usando un delimitador.
📌 Sintaxis:
!Split [ delimiter, string ]
📦 Ejemplo:
!Split [ ",", "a,b,c,d" ]
🔍 Resultado: ["a", "b", "c", "d"]
🔢 5. !Select — Seleccionar un elemento de una lista
Elige un elemento de una lista por índice.
📌 Sintaxis:
!Select [ index, list ]
📦 Ejemplo:
!Select [ 1, [ "apple", "banana", "cherry" ] ]
🔍 Resultado: "banana"
💡 Usadas en conjunto:
📦 Ejemplo combinado de !Split y !Select:
Value: !Select [ 1, !Split [ ",", "ami-123,ami-456,ami-789" ] ]
🔍 Resultado: ami-456
🧪 Consejos para usar estas funciones
FunciónÚtil para...!GetAttObtener atributos como ARN o URLs!FindInMapConfiguración regional o por tipo!JoinFormar ARNs, URLs, nombres!SplitDividir entradas dinámicas!SelectTomar valores específicos de una lista