小编use*_*040的帖子

FindInMap 可以返回列表吗?

我正在使用 CloudFormation 将 ELB 部署到具有预先存在的子网的预先存在的 VPC。我已经在模板的 Mappings 部分列出了子网,并根据 Environment 参数选择了映射。如果 Mapping 用于单个值,这可以正常工作,但我希望 Mapping 返回一个列表,因为我希望 ELB 是多可用区。我已经尝试了下面示例的各种组合,但我总是得到相同的错误Value of property Subnets must be of type List of String。FindInMap 有没有办法返回值列表?

ELB 配置示例

"ElasticLoadBalancerAPI": {
            "Properties": {
                "ConnectionDrainingPolicy": {
                    "Enabled": true,
                    "Timeout": 30
                },
                "ConnectionSettings": {
                    "IdleTimeout": 60
                },
                "CrossZone": "false",
                "Subnets" : [
                    {
                        "Fn::FindInMap": [
                            "AWSEnv2PublicSubnets",
                            {
                                "Ref": "Env"
                            },
                            "subList"
                        ]
                    }
                ],
                "SecurityGroups" : [ { "Ref" : "LoadBalancerSecurityGroup" }],
etc...
Run Code Online (Sandbox Code Playgroud)

示例参数

"Parameters": {
  "Env": {
            "Description": "Environment", …
Run Code Online (Sandbox Code Playgroud)

amazon-web-services amazon-cloudformation

11
推荐指数
2
解决办法
9603
查看次数