CloudFormation 创建的资源的有效属性

Posted

技术标签:

【中文标题】CloudFormation 创建的资源的有效属性【英文标题】:Valid Attributes for Resources Created by CloudFormation 【发布时间】:2020-01-09 15:26:27 【问题描述】:

CloudFormation 包含 Fn::GetAtt 内在函数。我如何知道给定资源有哪些属性可用?

 ApiDefault:
  Type: "AWS::ApiGateway::RestApi"
  Properties:
   Name: "poc"
   Description: "Public interface for system-to-system order submissions."
   FailOnWarnings: true
 ApiDefaultDeployment:
  Type: AWS::ApiGateway::Deployment
  DependsOn:
   - "ApiMethodImageSubmitPost"
  Properties:
   Description: "Production environment supporting version-1 of the interface."
   RestApiId: !Ref "ApiDefault"
   StageName: "v1"
 ...
 ApiUsagePlan:
  Type: "AWS::ApiGateway::UsagePlan"
  Properties:
   ApiStages: 
   - ApiId: !Ref "ApiDefault"
     Stage: !GetAtt [ "ApiDefaultDeployment", "StageName" ]

在上面,“StageName”不是一个有效的属性。那么,如何找到“AWS::ApiGateway::Deployment”的有效属性?

【问题讨论】:

【参考方案1】:

在任何给定资源in the doc 的返回值部分中,通常在示例部分上方的页面末尾附近。

首先解释!Ref 函数,然后解释!GetAtt 属性(如果有的话)(AWS::ApiGateway::Deployment 不是这种情况)。

在您的特定情况下,您可以将阶段名称作为模板中的参数传递,!Ref 它同时用于ApiDefaultDeploymentApiUsagePlan

【讨论】:

以上是关于CloudFormation 创建的资源的有效属性的主要内容,如果未能解决你的问题,请参考以下文章

具有资源属性 CloudFormation 的 UserData 脚本

cloudformation 验证返回:无效的模板资源属性

如何使用 Cloudformation 在 AWS RestAPI 中创建嵌套资源路径?

CloudFormation 资源创建(如果不存在)

创建没有资源的 CloudFormation 堆栈

cloudformation 未创建某些资源