代码之家  ›  专栏  ›  技术社区  ›  Jiew Meng

Fn::导入值未扩展

  •  1
  • Jiew Meng  · 技术社区  · 7 年前

    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'
    

    在我的代码管道/代码构建堆栈中:我正在引用它:

    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
    

    问题是,它并没有扩展,在我的代码中,我将ApiEndpoint视为 Fn::ImportValue !Sub '${PipelineName}-server-ApiEndpoint'

    1 回复  |  直到 7 年前
        1
  •  1
  •   Jiew Meng    7 年前

    好的,我发现了我的错误:

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

    我应该添加一个 : 之后 Fn::ImportValue