我正在使用制作多可用区灯叠的模板。我唯一要更改的是现有的VPC ID,添加2个现有子网以及命名RDB数据库,用户名和密码。当我单击“检查”按钮时,代码将验证正常,但是当我尝试启动网络时,它将失败并显示代码错误, “模板包含错误。:模板格式错误:每个Description成员必须是字符串。”
我一直在寻找例如SIMPLE模板,它们不使用任何foo-bar类型的“每个人都知道这将被他们自己的值填充”的东西。我已经花了几个小时进行搜索和测试。这是我做过的第一个,这不可能那么难,对吧? 我正在使用建议的AMI列表,尽管将来我会改用自定义的AMI。
"Parameters" : {
"VpcId" : {
"Type" : "AWS::EC2::VPC::Id",
"Description" : "vpc-123456789456",
"ConstraintDescription" : "must be the VPC Id of an existing Virtual Private Cloud."
},
"Subnets" : {
"Type" : "List<AWS::EC2::Subnet::Id>",
"Description" : [
"subnet-12345621ff4c" ,
"subnet-1234562188d1"],
这是我发现的唯一未抛出错误的消息,提示“期望':'而不是','” 我应该将名称列出为 “列表”
答案 0 :(得分:0)
"Description"
必须是字符串。创建堆栈时,它是在用户界面中显示的文字描述。
我认为您正在寻找"Default"
或"AllowedValues"
。万一您的模板用户未指定任何内容,第一个将设置默认值。要放置值列表,您需要用逗号分隔它们。例如:
"Parameters": {
"VpcId": {
"Type": "AWS::EC2::VPC::Id",
"Default": "vpc-123456789456",
"ConstraintDescription": "must be the VPC Id of an existing Virtual Private Cloud."
},
"Subnets": {
"Type": "List<AWS::EC2::Subnet::Id>",
"Default": "subnet-12345621ff4c,subnet-1234562188d1"
}
}
第二个是用户可以选择的允许值的列表。那个确实列出了清单。例如:
"Parameters": {
"VpcId": {
"Type": "AWS::EC2::VPC::Id",
"AllowedValues": ["vpc-123456789456", "vpc-xxx"],
"ConstraintDescription": "must be the VPC Id of an existing Virtual Private Cloud."
}
}
我不确定用户是否选择了错误的"ConstraintDescription"
。我认为这仅适用于"AllowedPattern"
。
是的,这可能会非常困难并且令人沮丧,但是随着时间的推移,它确实变得越来越容易。学习曲线很陡。