1

以下は、Elastic IP アドレスをネットワーク インターフェイスのプライマリ IP に関連付けるために使用した CloudFormation テンプレートのスニペットです。

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

このインターフェイスのセカンダリ IP についても同じことを行いたいと考えています。そのうち 2 つがあります (リストで指定した特定の 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 のリストにアクセスできることはわかっています。これにより、上記の 2 つのセカンダリ プライベート IP がリストとして返されます。私の質問は、このリストを JSON でどのようにアドレス指定できますか?

たとえば、プライベート IP をセカンダリ IP のリストの 2 番目の要素に割り当てたい場合、次のようにすることは有効ですか?

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

どうすればこれを達成できますか?簡単だと思いますが、JSONでこれを行う方法がわかりません。

4

1 に答える 1