Fn :: Sub中的嵌套Fn :: ImportValue不适用于SAM模板

时间:2018-04-06 22:17:41

标签: aws-api-gateway amazon-cloudformation aws-sam-cli

说明 我正在尝试定义无服务器API资源。但是使用函数ImportValue定义swagger规范文件的位置时遇到了麻烦。

重现此问题的步骤: 我无法在Location中定义具有嵌套函数AWS::Serverless::Api的{​​{1}}资源。我尝试过以下三种方式,但都没有。

注意:堆栈参数已正确定义,并且存在来自其他堆栈的导出值。由于简洁的原因,没有在这里显示它们。

ImportValue

Cloudformation显示以下错误。

  

FAILED - 变换Include下参数Location的值必须   解析为字符串,数字,布尔值或任何这些的列表。

但是,如果我不使用ApiGatewayApi: Type: AWS::Serverless::Api Properties: Name: !Sub ${AWS::StackName}-API StageName: !Ref ApiGatewayStageName DefinitionBody: 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: Fn::Sub: - s3://${BucketName}/${SwaggerSpecificationS3Key} - BucketName: Fn::ImportValue: !Sub "${EnvironmentName}-dist-bucket-${AWS::Region}" ApiGatewayApi: Type: AWS::Serverless::Api Properties: Name: !Sub ${AWS::StackName}-API StageName: !Ref ApiGatewayStageName DefinitionBody: 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: Fn::Sub: - s3://${BucketName}/${SwaggerSpecificationS3Key} - BucketName: !ImportValue 'dev-dist-bucket-us-east-1' ApiGatewayApi: Type: AWS::Serverless::Api Properties: Name: !Sub ${AWS::StackName}-API StageName: !Ref ApiGatewayStageName DefinitionBody: 'Fn::Transform': Name: 'AWS::Include' Parameters: Location: Fn::Sub: - s3://${BucketName}/${SwaggerSpecificationS3Key} - BucketName: Fn::ImportValue: 'dev-dist-bucket-us-east-1' ,则可以使用嵌套的ImportValue

Fn::Sub

是因为Fn :: Transform还是AWS :: Include?

0 个答案:

没有答案
相关问题