構成の最上位モジュール(実行するディレクトリterraform plan
)で出力が使用される場合、その値はTerraform状態で記録されます。
この値を別の構成から使用するには、その状態を他の構成で読み取ることができる場所に発行する必要があります。これを達成する通常の方法はRemote Stateを使用することです。 最初構成に対応リモート状態に
、それはthe terraform_remote_state
data sourceを用い第構成に起因する値を読み取ることが可能となります。
例えば、それは次のようなバックエンドの設定を使用してAmazon S3の最初の設定のために状態を維持することが可能です:
terraform {
backend "s3" {
bucket = "example-s3-bucket"
key = "example-bucket-key"
region = "us-east-1"
}
}
第一の構成にこれを追加した後、テラフォームを実行するように求められますterraform init
新しいバックエンドの初期化には、S3に格納される既存の状態の移行が含まれます。第二の構成は、第1の状態を読み取っているので、それが必要であること
data "terraform_remote_state" "example" {
backend = "s3"
config {
bucket = "example-s3-bucket"
key = "example-bucket-key"
region = "us-east-1"
}
}
resource "aws_instance" "foo" {
# ...
vpc_security_group_ids = "${data.terraform_remote_state.example.security_group_id}"
}
注:次に第構成において、これはterraform_remote_state
データソースに同じ構成を提供することによって取得することができる
terraform apply
この値が実際に状態に記録されるように最初の構成。第2の設定は、出力が最初に変更されたときはいつでも再適用する必要があります。
私はローカルの 'state'ファイルを持っていますか? –