如何在AWS CloudFormation模板中从逗号分隔的列表参数中识别选择项

4

我对AWS还比较新,仍在学习中。我在一个CFT中使用CommaDelimitedList作为参数类型,这样用户可以选择要在VPC上使用的子网。我需要在创建EC2实例并分配私有IP时能够引用所选内容。

"SubnetParameterCidrBlock":{
    "Description": "Comma-delimited list CIDR blocks for VPC",
    "Type" : "CommaDelimitedList",
    "Default": "10.200.1.0/24,10.200.2.0/24,10.200.3.0/24"
}

我认为我可以做如下操作:

我会假设我能够做这样的事情:

"NetworkInterfaces": [
      {
        "DeleteOnTermination": "true",
        "Description": "Primary network interface",
        "DeviceIndex": 0,
        "SubnetId": {"Ref": "SecureVPCSubnet"},
        "PrivateIpAddresses": [
          {
            "PrivateIpAddress": "Fn::GetAtt" : [ "SubnetParameterCidrBlock" , "Value" ],
            "Primary": "true"
          }
        ],
        "GroupSet": [
          {
            "Ref": "SecurityGroup"
          }
        ]
      }
    ]

这正确吗?还是我完全弄错了?

我已经浏览了大部分的AWS云形成文档。 是否有其他文档提供更好的示例?

1个回答

1
你应该尝试使用Fn::Select AWS CFT函数。首先可以看看这里。;)

1
不幸的是,Fn :: Select 要求我知道他们选择了哪一个。这就是我试图解决的问题。我知道整个列表,只是不知道他们在参数选项中选择了哪一个。 - John
好的,如果我理解正确,你只需要访问参数的值,那么你可以尝试使用 { "Ref": "SubnetParameterCidrBlock" } - gsaslis

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接