前提・実現したいこと
TerraformでInterface型のVPCエンドポイントを作成し、local execでサブネット内に作成されたENIにタグをつけたいと思っています。
該当のソースコード
HCL2
1resource "aws_vpc_endpoint" "interface" { 2 vpc_id = aws_vpc.vpc.id 3 vpc_endpoint_type = "Interface" 4 service_name = "com.amazonaws.ap-northeast-1.logs" 5 6 subnet_ids = [ 7 aws_subnet.subnet_01.id, 8 aws_subnet.subnet_02.id 9 ] 10 11 security_group_ids = [ aws_vpc.vpc.default_security_group_id ] 12 private_dns_enabled = true 13 14 tags = { 15 Name = "terraform-vpce-logs" 16 } 17 18 provisioner "local-exec" { 19 command = <<COMMAND 20 aws ec2 create-tags \ 21 --resources ${tolist(self.network_interface_ids)[0]} \ 22 --tags Key=Name,Value=terraform-eni-vpce \ 23 --profile ${var.aws_profile} 24 aws ec2 create-tags \ 25 --resources ${tolist(self.network_interface_ids)[1]} \ 26 --tags Key=Name,Value=terraform-eni-vpce \ 27 --profile ${var.aws_profile} 28 COMMAND 29 } 30}
現状、サブネットが2つでことが足りているのですが、[0],[1]などハードコーディングが目立つため、ループで柔軟にコマンドを実行できるようにしたいと思っています。
試したこと
ループが理解しきれていないなりに、for_each, for, count, dynamicなどを試してみたのですがうまくいかず。詰まっています。
ここにより詳細な情報を記載してください。
可能であれば、Nameの値のサフィックスに1a, 1cなどサブネットのAZに対応した値も入れたいと今後は思っています。
以上、何卒よろしくお願いいたします。
あなたの回答
tips
プレビュー