json - 通过辅助私有(private) IP 地址列表属性将弹性 IP 分配给辅助私有(private) IP

标签 json amazon-web-services networking aws-cloudformation elastic-ip

下面是我的 CloudFormation 模板的片段,用于将弹性 IP 地址与网络接口(interface)的主 IP 相关联:

        "MyInterfaceSelfEipAssociation": {
        "Properties": {
            "AllocationId": "eipalloc-XXXXX",
            "NetworkInterfaceId": {
                "Ref": "MyInterface"
            },
            "PrivateIpAddress": {
                "Fn::GetAtt": [
                    "MyInterface",
                    "PrimaryPrivateIpAddress"
                ]
            }
        },
        "Type": "AWS::EC2::EIPAssociation"

我想对此接口(interface)上的辅助 IP 执行相同的操作,其中有两个(我在列表中给出的特定 IP,不是由 AWS 分配的)。即接口(interface)的“PrivateIpAddresses” block 如下所示:

                "PrivateIpAddresses": [
                {
                    "PrivateIpAddress": "10.X.X.XX",
                    "Primary": "true"
                },
                {
                    "PrivateIpAddress": "10.X.X.XX",
                    "Primary": "false"
                },
                {
                    "PrivateIpAddress": "10.X.X.XX",
                    "Primary": "false"
                }
            ],

我知道我可以使用 Fn:GetAtt 属性调用“SecondaryPrivateIpAddresses”来访问辅助私有(private) IP 列表,这会将上面的两个辅助私有(private) IP 作为列表返回给我。我的问题是,如何通过索引在 JSON 中处理此列表?

例如,如果我想将私有(private) IP 分配给辅助 IP 列表中的第二个元素,执行以下操作是否有效:

                "PrivateIpAddress": {
                "Fn::GetAtt": [
                    "Bigip1subnet1Az1Interface",
                    "SecondaryPrivateIpAddresses[1]"
                ]
            }

我怎样才能实现这个目标?我觉得它应该很简单,但我不清楚如何在 JSON 中执行此操作。

最佳答案

使用Fn::Select按索引从对象列表中返回单个对象的内部函数:

        "PrivateIpAddress": {
          "Fn::Select": [
            1,
            { "Fn::GetAtt": [
                "Bigip1subnet1Az1Interface",
                "SecondaryPrivateIpAddresses"
            ]}
          ]
        }

关于json - 通过辅助私有(private) IP 地址列表属性将弹性 IP 分配给辅助私有(private) IP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41397073/

相关文章:

javascript - 如何返回 $(this)

ios - 如何映射一个我不知道参数个数的json

ssl - 如何在CloudFormation模板中将预先上传的SSL证书附加到ELB?

ssl - EC2 : HTTPS Load Balancing for multiple domains

amazon-web-services - 以 SQS 队列为目标的 CloudWatch 事件无法正常工作

javascript - 热重载如何工作?

java - 如何在 Gson 反序列化中折叠嵌套结构?

java - 无法导入 Jackson .databind 库

perl - 我应该使用 Nmap::Parser 还是 Nmap::Scanner 来审计网络?

java - 为什么服务器在 POST 方法请求后会返回 GET 响应?