TL;DR
- データソースは、既存のインフラの状態や設定を読み込む仕組みで、
dataブロックで定義する。
内容
第3章 Terraformをはじめようの 3.6 節。公式ドキュメントは https://developer.hashicorp.com/terraform/language/data-sources 。
AWS での例
既存の VPC にサブネットを作成する。data ブロックで VPC を読み込み、data.aws_vpc.example の形で参照する。aws_vpc データソースが出力する属性は公式の一覧にある。
variable "vpc_id" {}
data "aws_vpc" "example" {
id = var.vpc_id
}
resource "aws_subnet" "example" {
vpc_id = data.aws_vpc.example.id
availability_zone = "us-west-2a"
cidr_block = cidrsubnet(data.aws_vpc.example.cidr_block, 4, 1)
}Google Cloud での例
既存の Google Compute Engine の仮想マシンインスタンスの詳細を取得する。出力される属性は公式の一覧にある。
data "google_compute_instance" "example" {
name = "Terraform-server"
zone = "us-central1-a"
}