terraform_remote_stateの使い方
概要
tfstateが分かれている状況で、別のtfstate環境から、別のtfstateの情報を取得したい場合の手順です。
例:prd, devがあったとして、devからprdの情報を参照する場合です。
手順
- prd で dev に公開する値をoutputs.tfに記載します。
例えばグローバルサービスで共通の情報(ACMなど)を記載します。
value = {
# ACM
acm_main = aws_acm_certificate.main.arn
acm_global = aws_acm_certificate.global.arn
}
}
- dev の backend.tf でterraform_remote_stateを指定して、tfstateを参照できるようにします。
backend = "s3"
config = {
bucket = "terraform"
key = "prd/terraform.tfstate"
region = "ap-northeast-1"
profile = "example"
}
}
- 参照したいリソース側で下記のようなフォーマットで参照します。
certificate_arn = data.terraform_remote_state.prd.outputs.prd.acm_main