json - Cloudformation 列表和字符串 :: 属性 SecurityGroupIds 的值必须是字符串列表类型
问题描述
我收到以下错误:
"errorMessage": "Stack ID: stack-qenlamel5rn7p1icu Failure Reason: [Instance creation failed with reason: Value of property SecurityGroupIds must be of type List of String, stack-qenlamel5rn7p1icu creation failed with reason: The following resource(s) failed to create: [Instance].
我正在使用的代码是:
"SecurityGroupIds": [{
"Fn::ImportValue": {
"Fn::Sub": "${EnvIdentifier}-EC2SecurityGroup"
}
}, {
"Ref": "SecurityGroups"
}],
如您所见,我同时使用 Ref 和 Fn::ImportValue 来创建一个“字符串列表”。我已经尝试过两者分开并且它们有效。即:
1. Works:
"SecurityGroupIds" : { "Ref": "SecurityGroups" },
2. Works:
"SecurityGroupIds" : [ { "Fn::ImportValue" : {"Fn::Sub": "${EnvIdentifier}-EC2SecurityGroup" } } ]
我一起得到了上述错误。尝试了各种类似的东西join
。
解决方案
由于这有效:
Works: "SecurityGroupIds" : { "Ref": "SecurityGroups" },
我推测这SecurityGroups
是一个接受安全组列表的参数。因此,使用SecurityGroups
andImportValue
将失败,因为一个是 alist
而另一个是 a string
。
因此,您必须构建一个连接的字符串列表。不过,这里显示了一种方法yaml
。您必须将其修改为json
格式。
推荐阅读
- java - 使用数据框在 Java 中对 Spark 中的 n 列求和
- amazon-web-services - Cloudberry - 无法安装驱动器
- neo4j - 如何使用 Cypher 返回具有不同属性的节点的所有属性
- angular - 如何将从下拉多选接收的数组值转换为角度5中的字符串
- reactjs - 如何使用 React 路由而不是 express
- android - Ionic 3 键盘在横向模式下隐藏输入字段
- c# - C# 将往返日期字符串转换为 DateTime 对象
- mysql - SQL 使用查询不同的条件
- wordpress - 主目录 HTML 和子目录 WordPress 网站上的非 www 到 www 重定向不起作用
- python-3.x - ValueError:没有足够的值来解包(预期 3,得到 1)-元组包含 3 个元素