This blueprint provides the necessary infrastructure to create a complete development environment for building and deploying machine learning models using BigQuery ML and Vertex AI. With this blueprint, you can deploy your models to a Vertex AI endpoint or use them within BigQuery ML.
It also includes the IAM wiring needed to make such scenarios work. Regional resources are used in this example, but the same logic applies to 'dual regional', 'multi regional', or 'global' resources.
As is often the case in real-world configurations, this blueprint accepts as input existing Cloud KMS keys to encrypt resources via the `service_encryption_keys` variable.
In the [`demo`](./demo/) folder, you can find an example of creating a Vertex AI pipeline from a publicly available dataset and deploying the model to be used from a Vertex AI managed endpoint or from within Bigquery.
| [prefix](variables.tf#L30) | Prefix used for resource names. | <code>string</code> | ✓ | |
| [project_id](variables.tf#L48) | Project id references existing project if `project_create` is null. | <code>string</code> | ✓ | |
| [deletion_protection](variables.tf#L17) | Prevent Terraform from destroying data storage resources (storage buckets, GKE clusters, CloudSQL instances) in this blueprint. When this field is set in Terraform state, a terraform destroy or terraform apply that would delete data storage resources will fail. | <code>bool</code> | | <code>false</code> |
| [location](variables.tf#L24) | The location where resources will be deployed. | <code>string</code> | | <code>"US"</code> |
| [project_create](variables.tf#L39) | Provide values if project creation is needed, use existing project if null. Parent format: folders/folder_id or organizations/org_id. | <codetitle="object({ billing_account_id = string parent = string })">object({…})</code> | | <code>null</code> |
| [region](variables.tf#L53) | The region where resources will be deployed. | <code>string</code> | | <code>"us-central1"</code> |
| [service_encryption_keys](variables.tf#L59) | Cloud KMS to use to encrypt different services. The key location should match the service region. | <codetitle="object({ aiplatform = optional(string, null) bq = optional(string, null) compute = optional(string, null) storage = optional(string, null) })">object({…})</code> | | <code>null</code> |
| [vpc_config](variables.tf#L70) | Shared VPC network configurations to use. If null networks will be created in projects with pre-configured values. | <codetitle="object({ host_project = string network_self_link = string subnet_self_link = string })">object({…})</code> | | <code>null</code> |