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"
}

キーワード