Open2
Terraform Tips集
マルチアカウントでリソースを構築したい
module やresource に providers を明示的に定義.
provider.tf
# providerを複数定義する
provider "aws" {
region = "us-east-1"
alias = "uses1"
}
provider "aws" {
region = "us-east-1"
alias = "uses1"
}
:
:
main.tf
module "vpc" {
providers = { aws = aws.apne1 } # providersでリソース作成するリージョンを明示的に指定
source = "./modules/vpc/network"
:
:
}
module "r53" {
providers = { aws = aws.uses1 }
source = "./modules/route53/record"
:
:
}
for_eachする 形式いろいろ
- map の場合は, そのまま使える
locals {
list_rtb_prefix = {"dmz", "app", "db", "edp"}
}
resource "aws_route_table" "this" {
for_each = local.list_rtb_prefix
}
- listの場合は, tosetを使う. for_each はlmapに対応しているのでlist -> mapへ変換する.
locals {
list_rtb_prefix = [ "dmz", "app", "db", "edp"]
}
resource "aws_route_table" "this" {
for_each = toset(local.list_rtb_prefix)
}