google_data_fusion_instance

Represents a Data Fusion instance.

To get more information about Instance, see:

Open in Cloud Shell

Example Usage - Data Fusion Instance Basic

resource "google_data_fusion_instance" "basic_instance" {
  name   = "my-instance"
  region = "us-central1"
  type   = "BASIC"

}
Open in Cloud Shell

Example Usage - Data Fusion Instance Full

resource "google_data_fusion_instance" "extended_instance" {
  name                          = "my-instance"
  description                   = "My Data Fusion instance"
  display_name                  = "My Data Fusion instance"
  region                        = "us-central1"
  type                          = "BASIC"
  enable_stackdriver_logging    = true
  enable_stackdriver_monitoring = true
  private_instance              = true
  dataproc_service_account      = data.google_app_engine_default_service_account.default.email

  labels = {
    example_key = "example_value"
  }

  network_config {
    network       = "default"
    ip_allocation = "${google_compute_global_address.private_ip_alloc.address}/${google_compute_global_address.private_ip_alloc.prefix_length}"
  }

  accelerators {
    accelerator_type = "CDC"
    state = "ENABLED"
  }

}

data "google_app_engine_default_service_account" "default" {
}

resource "google_compute_network" "network" {
  name = "datafusion-full-network"
}

resource "google_compute_global_address" "private_ip_alloc" {
  name          = "datafusion-ip-alloc"
  address_type  = "INTERNAL"
  purpose       = "VPC_PEERING"
  prefix_length = 22
  network       = google_compute_network.network.id
}
Open in Cloud Shell

Example Usage - Data Fusion Instance Cmek

resource "google_data_fusion_instance" "cmek" {
  name   = "my-instance"
  region = "us-central1"
  type   = "BASIC"

  crypto_key_config {
    key_reference = google_kms_crypto_key.crypto_key.id
  }

  depends_on = [google_kms_crypto_key_iam_member.crypto_key_member]
}

resource "google_kms_crypto_key" "crypto_key" {
  name     = "my-instance"
  key_ring = google_kms_key_ring.key_ring.id
}

resource "google_kms_key_ring" "key_ring" {
  name     = "my-instance"
  location = "us-central1"
}

resource "google_kms_crypto_key_iam_member" "crypto_key_member" {
  crypto_key_id = google_kms_crypto_key.crypto_key.id
  role          = "roles/cloudkms.cryptoKeyEncrypterDecrypter"

  member = "serviceAccount:service-${data.google_project.project.number}@gcp-sa-datafusion.iam.gserviceaccount.com"
}

data "google_project" "project" {}
Open in Cloud Shell

Example Usage - Data Fusion Instance Enterprise

resource "google_data_fusion_instance" "enterprise_instance" {
  name = "my-instance"
  region = "us-central1"
  type = "ENTERPRISE"
  enable_rbac = true

}
Open in Cloud Shell

Example Usage - Data Fusion Instance Event

resource "google_data_fusion_instance" "event" {
  name    = "my-instance"
  region  = "us-central1"
  type    = "BASIC"

  event_publish_config {
    enabled = true
    topic   = google_pubsub_topic.event.id
  }
}

resource "google_pubsub_topic" "event" {
  name = "my-instance"
}
Open in Cloud Shell

Example Usage - Data Fusion Instance Zone

resource "google_data_fusion_instance" "zone" {
  name   = "my-instance"
  region = "us-central1"
  zone   = "us-central1-a"
  type   = "DEVELOPER"
}

Argument Reference

The following arguments are supported:


The network_config block supports:

The crypto_key_config block supports:

The event_publish_config block supports:

The accelerators block supports:

Attributes Reference

In addition to the arguments listed above, the following computed attributes are exported:

Timeouts

This resource provides the following Timeouts configuration options:

Import

Instance can be imported using any of these accepted formats:

In Terraform v1.5.0 and later, use an import block to import Instance using one of the formats above. For example:

import {
  id = "projects/{{project}}/locations/{{region}}/instances/{{name}}"
  to = google_data_fusion_instance.default
}

When using the terraform import command, Instance can be imported using one of the formats above. For example:

$ terraform import google_data_fusion_instance.default projects/{{project}}/locations/{{region}}/instances/{{name}}
$ terraform import google_data_fusion_instance.default {{project}}/{{region}}/{{name}}
$ terraform import google_data_fusion_instance.default {{region}}/{{name}}
$ terraform import google_data_fusion_instance.default {{name}}

User Project Overrides

This resource supports User Project Overrides.