尝试在Fn :: FindInMap中使用Fn :: Join,如下所示:
"SubnetId": {
"Fn::FindInMap": [
{
"Ref": "OrganizationName"
},
"AZ",
{
"Fn::Join": [
"",
[
{
"Ref": "Environment"
},
{
"Ref": "Member1AZ"
}
]
]
}
]
}
Run Code Online (Sandbox Code Playgroud)
OrganizationName,Environment和Member1AZ都是参数。本质上,它应该连接到我的映射并生成,例如:
"SubnetId" : { "Fn::FindInMap" : [ "Organization2", "AZ", "prod1c" ]}
Run Code Online (Sandbox Code Playgroud)
但是,它似乎没有将Fn :: Join的输出作为Fn :: FindInMap上的单个实体使用,如果我对模板的该部分进行硬编码,它将正确验证。
A client error (ValidationError) occurred when calling the ValidateTemplate operation: Template error: every Fn::FindInMap object requires three parameters, the map name, map key and the attribute for return value
Run Code Online (Sandbox Code Playgroud)
我的映射如下:
Mappings" : …Run Code Online (Sandbox Code Playgroud) 尝试使用自定义SSL协商策略设置云信息模板.我得到的cloudformation错误是:
无法启用CREATE_FAILED AWS :: ElasticLoadBalancing :: LoadBalancer BackendELB SSLNegotiationPolicy
我的cloudformation模板部分如下:
"Policies" : [
{
"PolicyName": "SSLNegotiationPolicy",
"PolicyType": "SSLNegotiationPolicyType",
"Attributes": [
{ "Name" : "Protocol-TLSv1", "Value" : "true" },
{ "Name" : "Protocol-TLSv1.1", "Value" : "true" },
{ "Name" : "Protocol-TLSv1.2", "Value" : "true" },
{ "Name" : "Protocol-SSLv2", "Value" : "false" },
{ "Name" : "Protocol-SSLv3", "Value" : "false" },
{ "Name" : "ECDHE-RSA-AES128-GCM-SHA256", "Value" : "true" },
{ "Name" : "ECDHE-ECDSA-AES128-SHA256", "Value" : "true" },
{ "Name" : "ECDHE-RSA-AES128-SHA256", …Run Code Online (Sandbox Code Playgroud)