AWS Fn::ImportValue !Sub not accepting value

Viewed 29

I have a cloudformation script that configures a VPC and in the Outputs section it exports a few values - one is the Zone B AZ:

Parameters: 
  PublicAvailabilityZoneB:
  Type: String
  Default: us-east-1b

Outputs:
  PublicAvailabilityZoneB:
    Description: Pubic Subnet B Availability Zone
    Value: !Ref PublicAvailabilityZoneB
    Export:
      Name: !Sub "${AWS::StackName}-${OwnerID}-${PublicAvailabilityZoneB}-PublicSubnetB-AZ"

In the console this is in the Outputs section:

PublicAvailabilityZoneB us-east-2b  Pubic Subnet B Availability Zone    Stack-02-Schwartz-us-east-2b-PublicSubnetB-AZ

I have a second CFN script that instantiates EC2 instances.

  Parameters:
    PublicAvailabilityZoneB:
      Type: String
      Default: us-east-1b  

    NetworkStackParameter:
      Description: Parent stack
      Type: String
      Default: Stack-02

    OwnerID:
      Type: String
      Default: Schwartz
  
  Resources:
    BastionInstance:
      Type: 'AWS::EC2::Instance'
      DependsOn:
        - BastionInterface
      Properties:
        ImageId: !Ref LinuxAmi
        InstanceType: c4.large
        AvailabilityZone:
          Fn::ImportValue: !Sub ${NetworkStackParameter}-${OwnerID}-${PublicAvailabilityZoneB}-PublicSubnetB-AZ

I am receiving this error when I run the second CFN script:

No export named ${NetworkStackParameter}-${OwnerID}-${PublicAvailabilityZoneB}-PublicSubnetB-AZ found.

What am I missing? I have triple checked the CFN script. Thanks.

1 Answers

Ugh, easy mistake. It should have had quotes Fn::ImportValue: !Sub "${NetworkStackParameter}-${OwnerID}-${PublicAvailabilityZoneB}-PublicSubnetB-AZ"

Related