1terraform { 2 required_providers { 3 google = { 4 source = "hashicorp/google" 5 } 6 } 7} 8resource "google_project_service" "bigquery" { 9 service = "bigquery.googleapis.com" 10 project = var.inputs.project_id 11 count = var.inputs.should_enable_apis_on_apply ? 1 : 0 12 disable_on_destroy = var.inputs.should_disable_apis_on_destroy 13} 14resource "google_project_service" "bigqueryconnection" { 15 service = "bigqueryconnection.googleapis.com" 16 project = var.inputs.project_id 17 count = var.inputs.should_enable_apis_on_apply ? 1 : 0 18 disable_on_destroy = var.inputs.should_disable_apis_on_destroy 19} 20resource "google_project_service" "sqladmin" { 21 service = "sqladmin.googleapis.com" 22 project = var.inputs.project_id 23 count = var.inputs.should_enable_apis_on_apply ? 1 : 0 24 disable_on_destroy = var.inputs.should_disable_apis_on_destroy 25} 26 27resource "random_id" "id" { 28 byte_length = 3 29} 30locals { 31 db_name = lower("mysql-db-${random_id.id.hex}") 32} 33 34module "mysql-db" { 35 source = "GoogleCloudPlatform/sql-db/google//modules/mysql" 36 version = "12.0.0" 37 name = local.db_name 38 database_version = "MYSQL_8_0" 39 deletion_protection = false 40 project_id = var.inputs.project_id 41 zone = var.inputs.zone 42 region = var.inputs.region 43 depends_on = [ 44 google_project_service.bigquery, 45 google_project_service.bigqueryconnection, 46 google_project_service.sqladmin 47 ] 48} 49