以下は、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でこれを行う方法がわかりません。