Fn :: GetAtt用于导出的资源/堆栈

时间:2018-03-26 13:38:56

标签: aws-lambda aws-api-gateway serverless

是否可以使用导出堆栈的logicalId。我创建了一个APIGateway资源并将其导出。它的logicalId是value。当我尝试获取rApiGatewayVehRestApi的RootResourceId时,在无服务器部署期间出现以下错误:

rApiGatewayVehRestApi

以下是无服务器配置的片段:

The CloudFormation template is invalid: Template error: instance of Fn::GetAtt references undefined resource rApiGatewayVehRestApi

1 个答案:

答案 0 :(得分:1)

您收到该错误的原因是堆栈中没有包含逻辑ID rApiGatewayVehRestApi的资源。

导出值时,导出的是单个值,而不是整个资源。如果您想导出ID,可以在导出端执行Fn::GetAtt,例如:

Outputs:
  RestApiRootResourceId:
    Value: !GetAtt YourApiGateway.RootResourceId
    Export:
      Name: rApiGatewayVehRestApiId

关于导出限制的一些注释,如Outputs文档中所述。

  • 导出名称不能使用Ref或GetAtt函数
  • Imports的名称不能使用Ref或GetAtt函数