最后审核时间:2026年5月
使用原生 Terraform 构建 PMLE 考试中的 AWS 服务——每次构建一个代码块,并紧扣考试领域。相同的代码可在 OpenTofu 上运行。
在本实验结束时,您将使用纯 Terraform 预置最小的真实 PMLE 基础架构——一个用于模型文件和训练数据的 Cloud Storage 制品存储桶、一个用于实验的 Vertex AI Workbench 实例,以及一个用于提供预测的 Vertex AI Endpoint。这四个模块是所有 PMLE 训练和部署工作流的基础。
将这些代码片段放入一个 main.tf 文件中,运行 terraform init,然后逐步运行 terraform apply。
请注意:训练好的模型本身并非通过 Terraform 预置——模型是在训练后通过 gcloud ai models upload 或 Vertex AI SDK 上传的。此处预置的端点已准备好托管模型;模型部署是 terraform apply 之后的一个单独步骤。
>= 1.5 或 OpenTofu >= 1.6。your-project-id。空闲时有两项会产生费用:
如果 Workbench 24/7 运行,每月费用约为 100 美元。**每次实验会话后请停止它。**一旦您将模型部署到端点,n1-standard-2 服务的费用预计约为每小时 0.20 美元(如果始终开启,约每月 144 美元)。
启用 Vertex AI、Cloud Notebooks(用于 Workbench)和 Cloud Storage API。
terraform {
required_version = ">= 1.5"
required_providers {
google = { source = "hashicorp/google", version = "~> 6.0" }
}
}
provider "google" {
project = "your-project-id" # REPLACE
region = "us-central1"
}
locals {
labels = {
project = "certlabpro-pmle"
managed_by = "terraform"
}
}
resource "google_project_service" "aiplatform" {
service = "aiplatform.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "notebooks" {
service = "notebooks.googleapis.com"
disable_on_destroy = false
}
resource "google_project_service" "storage" {
service = "storage.googleapis.com"
disable_on_destroy = false
}PMLE 推荐的存储桶布局:每个 ML 项目一个区域存储桶,其中包含 data/raw/、data/processed/、models/ 和 pipelines/ 子文件夹。我们预置一个存储桶,其命名约定遵循 <project-name>-ml-<region>-<random>。标准存储类别用于热训练数据访问;生命周期规则规定 90 天后转为 Nearline 存储类别。
resource "random_id" "suffix" {
byte_length = 4
}
resource "google_storage_bucket" "ml" {
name = "certlabpro-pmle-ml-${random_id.suffix.hex}"
location = "us-central1"
uniform_bucket_level_access = true
force_destroy = true # lab-only
versioning {
enabled = true # PMLE-recommended for model artifacts
}
lifecycle_rule {
condition {
age = 90
}
action {
type = "SetStorageClass"
storage_class = "NEARLINE"
}
}
labels = local.labels
depends_on = [google_project_service.storage]
}Vertex AI Workbench 是 PMLE 规范的实验环境——在 GCE VM 上运行的托管 Jupyter,预加载了 PyTorch、TensorFlow、scikit-learn 和 Vertex AI SDK。我们预置一个 e2-standard-4 实例;对于实际训练工作负载,可升级到 GPU 实例类型(n1-standard-8 + nvidia-tesla-t4)。
不使用时,请通过 Workbench 控制台停止实例,否则每月将产生约 100 美元的费用。
resource "google_workbench_instance" "main" {
name = "certlabpro-pmle-workbench"
location = "us-central1-a"
gce_setup {
machine_type = "e2-standard-4"
boot_disk {
disk_size_gb = 150
disk_type = "PD_STANDARD"
}
data_disks {
disk_size_gb = 100
disk_type = "PD_STANDARD"
}
}
labels = local.labels
depends_on = [google_project_service.notebooks]
}Vertex AI Endpoints 是 PMLE 的部署原语——每个提供服务的模型都位于一个端点之后。其流程为:(1) 训练模型(通过 Workbench / Vertex AI Training / AutoML),(2) 将其上传到 Vertex AI Model Registry (gcloud ai models upload),(3) 将模型部署到端点。PMLE 考试将这种 模型 → 端点 → 流量拆分 模式作为标准的服务模式进行考察。
我们预置了一个没有部署模型的端点——在附加模型之前是免费的。通过以下方式部署模型:
gcloud ai models deploy MODEL_ID \
--endpoint certlabpro-pmle-endpoint \
--machine-type n1-standard-2 \
--region us-central1
有了这四个模块(provider+API、制品存储桶、Workbench 环境、Endpoint 服务界面),PMLE 服务基础架构就完整了。真实的 PMLE 工作流会在此基础上叠加 Vertex AI Pipelines (Kubeflow)、Vertex AI Experiments、Vertex AI Model Monitoring、Vertex AI Feature Store 和 Vertex AI Vizier。
resource "google_vertex_ai_endpoint" "main" {
name = "certlabpro-pmle-endpoint"
display_name = "PMLE lab endpoint"
location = "us-central1"
labels = local.labels
depends_on = [google_project_service.aiplatform]
}terraform destroy 会拆除所有资源。Workbench 实例在销毁时会立即停止计费(每月节省约 100 美元)。Endpoint 没有部署模型,因此原本就是免费的;如果您在 terraform apply 之后部署了模型,请先通过 gcloud ai endpoints undeploy-model 取消部署模型,否则销毁将失败。GCS 存储桶将通过 force_destroy = true 被销毁。
PMLE 涵盖了本实验无法容纳的许多 Vertex AI 层面——Vertex AI Pipelines (Kubeflow Pipelines + Vertex Pipelines SDK)、Vertex AI Training(自定义训练作业 + 超参数调优)、Vertex AI AutoML(表格/视觉/NLP/预测自动训练)、Vertex AI Feature Store(在线 + 离线服务)、Vertex AI Model Monitoring(漂移 + 偏差检测)、Vertex AI Experiments(跟踪 + 比较)、Vertex AI Vizier(贝叶斯超参数优化)、Vertex AI Matching Engine(向量相似性搜索)、Vertex AI Tensorboard、批处理模式下的 Vertex AI Predictions、BigQuery ML(数据库内 ML 训练)、Generative AI Studio + Model Garden + Vertex AI Agent Builder ([[gcp-gail]])、用于大型模型训练的 TPU Pod、Vertex AI Pipelines 模板、Vertex AI Workbench 用户管理型与实例型的区别(旧版 → 托管迁移)。
我们之所以坚持使用 GCS + Workbench + Endpoint 原语,是因为它们是 PMLE 规范的训练 + 服务核心。所有其他 Vertex AI 服务都基于此基础——Pipelines 编排训练作业,将模型写入 GCS 并注册;Feature Store 将特征读入训练作业;Model Monitoring 监控第 4 步中部署的端点。掌握好基础架构,更高级的构造便可在此之上组合。
有关各个服务的概念性覆盖范围,请参阅此认证页面的 浏览、手册 和 Editorial 部分。