最后审核时间: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 部分。