具有多种资源的 Cloudformation 模板
Posted
技术标签:
【中文标题】具有多种资源的 Cloudformation 模板【英文标题】:Cloudformation template with multiple resources 【发布时间】:2020-10-17 15:33:52 【问题描述】:我有一个相当简单的 cloudformation 模板。我正在努力了解他们。我创建了一个在部署堆栈时尝试创建 2 个 dyanmo 表的位置。但是只创建了一张表。不是两个。我不确定我的语法有什么问题。粘贴下面的json
"AWSTemplateFormatVersion" : "2010-09-09", “资源” : “资源1”: "类型" : "AWS::DynamoDB::Table", “特性” : “属性定义”:[ “属性名称”:“名称”, “属性类型”:“S” , “属性名”:“年龄”, “属性类型”:“S” ], “密钥架构”:[ “属性名称”:“名称”, “密钥类型”:“哈希” , “属性名”:“年龄”, “键类型”:“范围” ], “预置吞吐量”: "ReadCapacityUnits" : "5", “写容量单位”:“5” , “表名”:“tablecloudformation3_1” , “资源” : “资源2”: "类型" : "AWS::DynamoDB::Table", “特性” : “属性定义”:[ “属性名称”:“名称”, “属性类型”:“S” , “属性名”:“年龄”, “属性类型”:“S” ], “密钥架构”:[ “属性名称”:“名称”, “密钥类型”:“哈希” , “属性名”:“年龄”, “键类型”:“范围” ], “预置吞吐量”: "ReadCapacityUnits" : "5", “写容量单位”:“5” , “表名”:“tablecloudformation3_2” ,
【问题讨论】:
你有两个键Resources
提示:YAML 格式往往可以避免 JSON 格式带来的问题。没有那些讨厌的大括号!
【参考方案1】:
更一般地说,CloudFormation Linter 可以帮助更快地发现这些模板问题,并出现以下错误:
E0000 Duplicate found "Resources" (line 35)
【讨论】:
【参考方案2】:模板中有几个错误。 @MariaInesParnisari 已经指出了这一点。
其他的缺少左括号和中间不需要的括号。
我修复了模板并且可以确认它有效:
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" :
"resource1" :
"Type" : "AWS::DynamoDB::Table",
"Properties" :
"AttributeDefinitions" : [
"AttributeName" : "Name",
"AttributeType" : "S"
,
"AttributeName" : "Age",
"AttributeType" : "S"
],
"KeySchema" : [
"AttributeName" : "Name",
"KeyType" : "HASH"
,
"AttributeName" : "Age",
"KeyType" : "RANGE"
],
"ProvisionedThroughput" :
"ReadCapacityUnits" : "5",
"WriteCapacityUnits" : "5"
,
"TableName" : "tablecloudformation3_1"
,
"resource2" :
"Type" : "AWS::DynamoDB::Table",
"Properties" :
"AttributeDefinitions" : [
"AttributeName" : "Name",
"AttributeType" : "S"
,
"AttributeName" : "Age",
"AttributeType" : "S"
],
"KeySchema" : [
"AttributeName" : "Name",
"KeyType" : "HASH"
,
"AttributeName" : "Age",
"KeyType" : "RANGE"
],
"ProvisionedThroughput" :
"ReadCapacityUnits" : "5",
"WriteCapacityUnits" : "5"
,
"TableName" : "tablecloudformation3_2"
【讨论】:
以上是关于具有多种资源的 Cloudformation 模板的主要内容,如果未能解决你的问题,请参考以下文章
如何从 aws cloudformation 模板为特定资源类型创建堆栈
CloudFormation - SAM 模板的结构无效。 “资源”部分是必需的