繁体   English   中英

通过SecondaryPrivateIpAddresses列表属性将弹性IP分配给辅助专用IP

[英]Assigning Elastic IPs to Secondary Private IPs via SecondaryPrivateIpAddresses List Attribute

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

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

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

                "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”访问辅助专用IP列表,该列表会将上面的两个辅助专用IP作为列表返回给我。 我的问题是,如何按JSON处理此列表(按索引)?

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

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

我该如何实现? 我觉得它应该很简单,但是我不清楚如何在JSON中执行此操作。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM