Fn::ImportValue not expanding

642 Views Asked by At

I have an SAM template that creates an API Gateway API exporting the API Endpoint:

AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: 'API Server for Skynet: AWS Management Assistant'
Resources:
  ApiGatewayApi:
    Type: AWS::Serverless::Api
    Properties:
      DefinitionUri: swagger.yml
      StageName: prod
      Variables:
        Region: !Ref AWS::Region
        AccountId: !Ref AWS::AccountId

Outputs:
  ApiEndpoint:
    Description: API Endpoint
    Value: !Sub
      - 'https://${ApiId}.execute-api.${AWS::Region}.amazonaws.com/prod'
      - {ApiId: !Ref ApiGatewayApi}
    Export:
      Name: !Sub '${AWS::StackName}-ApiEndpoint'

In my CodePipeline/CodeBuild stack: I am referencing it:

CodeBuildWeb:
    Type: AWS::CodeBuild::Project
    Properties:
      Name: !Sub '${PipelineName}-web'
      Artifacts:
        Type: CODEPIPELINE
      Environment:
        ComputeType: BUILD_GENERAL1_SMALL
        Image: aws/codebuild/nodejs:7.0.0
        Type: LINUX_CONTAINER
        EnvironmentVariables:
          - Name: S3_BUCKET
            Value: !Ref S3WebBucket
          - Name: API_URL
            Value: Fn::ImportValue
              !Sub '${PipelineName}-server-ApiEndpoint'
      ServiceRole: !Ref CodeBuildRole
      Source:
        BuildSpec: 'web/buildspec.yml'
        Type: CODEPIPELINE

Problem is, its not expanding, in my code, I see ApiEndpoint as Fn::ImportValue !Sub '${PipelineName}-server-ApiEndpoint' whats wrong here?

1

There are 1 best solutions below

0
On BEST ANSWER

OK, I found my mistake:

- Name: API_URL
    Value: Fn::ImportValue:
        !Sub '${PipelineName}-server-ApiEndpoint'

I should add a : after Fn::ImportValue