Terraformでリソースを有効にするかどうかの設定は、countを利用するか、for_eachを利用することで切り替えすることができる。
countを利用した例
resource "aws_route53_record" "keycloak" {
count = var.enable_dns_record ? 1 : 0
}
for_eachを利用した例
resource "aws_route53_record" "services" {
// enable_dns_record = true の場合にのみ登録する
for_each = {
for name, service in var.service : name => school
if var.enable_dns_record == true
}
}
aws_ecs_serviceリソースのcapacity_provider_strategyオプションのようにDynamicブロックの定義を使ったオプションを切り替える場合にはcountを利用できないため、for_eachを利用して以下のように定義することで実現できる。
resource "aws_ecs_service" "service" {
dynamic "capacity_provider_strategy" {
for_each = var.is_capacity_provider_strategy ? [1] : []
content {
capacity_provider = "FARGATE"
base = 2 // 必ず2台はFARGATEで起動
weight = 0
}
}
dynamic "capacity_provider_strategy" {
for_each = var.is_capacity_provider_strategy ? [1] : []
content {
capacity_provider = "FARGATE_SPOT"
base = 0
weight = 1 // 3台目以降はFARGATE_SPOTで起動
}
}
Top comments (0)