--- AWSTemplateFormatVersion: "2010-09-09" Mappings: CertificateMap: us-east-1: Arn: arn:aws:acm:us-east-1::certificate/ 2: Arn: "" # Empty string is a valid value Resources: AppAlbListener: Type: AWS::ElasticLoadBalancingV2::Listener Properties: Certificates: - CertificateArn: Fn::FindInMap: [CertificateMap, !Ref 'AWS::Region', !Ref 'AWS::Region'] # Doesn't fail when a Ref is used AppAlbListener1: Type: AWS::ElasticLoadBalancingV2::Listener Properties: Certificates: - CertificateArn: # Doesn't fail with hardcoded string Fn::FindInMap: [CertificateMap, 'us-east-1', Arn] AppAlbListener2: Type: AWS::ElasticLoadBalancingV2::Listener Properties: Certificates: - CertificateArn: # Doesn't fail with map is dynamic Fn::FindInMap: [!Ref 'AWS::Region', 'us-west-2', id] AppAlbListener3: Type: AWS::ElasticLoadBalancingV2::Listener Properties: Certificates: - CertificateArn: # Doesn't fail with integer Fn::FindInMap: [!Ref 'AWS::Region', 2, id]