נבדק לאחרונה: מאי 2026
בנו את שירותי AWS של בחינת DP-100 עם Terraform פשוט — בלוק אחד בכל פעם, כאשר כל אחד מהם מקושר בחזרה לתחום במבחן. אותו הקוד עובד גם ב-OpenTofu.
עד סוף מעבדה זו, תספק, באמצעות Terraform פשוט, את מישור הבקרה של סביבת העבודה של Azure Machine Learning — סביבת העבודה עצמה, שלוש התלויות הנדרשות (Storage Account, Key Vault, Application Insights), ואשכול מחשוב של Azure ML המותאם לגודל אפס בזמן סרק, כדי שהמעבדה לא תבזבז כסף. זוהי הגדרת סביבת העבודה הייחוסית של DP-100; עבודות אימון ופריסות מודלים מתחברות אליה.
השלך את המקטעים לקובץ main.tf יחיד, הפעל terraform init, ולאחר מכן terraform apply שלב אחר שלב.
>= 1.5 או OpenTofu >= 1.6.az login).מישור הבקרה במצב סרק בעלות קרובה ל-0$:
מלכודת העלות של DP-100 היא השארת min_node_count > 0 באשכול המחשוב — אפילו צומת אחד במצב סרק עולה 200$+ לחודש. אנו מגדירים min_node_count = 0 ו-scale_down_nodes_after_idle_duration = PT15M (הקטנת קנה מידה 15 דקות לאחר סרק). ודא זאת לפני ההפעלה. השמד בסיום.
פתיחה סטנדרטית של Azure. סביבות עבודה של Azure ML הן אזוריות — בחר אזור עם זמינות רחבה של SKU של GPU אם אתה מתכוון להרחיב מעבר למעבדה (eastus, westus, westeurope הן הבחירות הבטוחות).
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
random = { source = "hashicorp/random", version = "~> 3.6" }
}
}
provider "azurerm" {
features {
key_vault {
purge_soft_delete_on_destroy = true
}
}
}
resource "random_id" "suffix" {
byte_length = 3
}
data "azurerm_client_config" "current" {}
locals {
tags = {
Project = "certlabpro-dp-100"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-dp-100-rg"
location = "eastus"
tags = local.tags
}סביבות עבודה של Azure ML דורשות שלושה משאבים קיימים מראש להתחבר אליהם: חשבון אחסון (עבור מערכי נתונים, מודלים, יומנים), Key Vault (עבור אישורים), ומופע Application Insights (עבור טלמטריה של ריצות). DP-100 בודק את השלישייה הזו שוב ושוב — "מדוע איני יכול ליצור את סביבת העבודה?" היא כמעט תמיד חסרה באחד מאלה.
חשבון האחסון כאן מקבל את ברירות המחדל המאובטחות הסטנדרטיות; ה-Key Vault משתמש בהרשאת RBAC (ברירת המחדל המודרנית).
resource "azurerm_storage_account" "ml" {
name = "dp100ml${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
account_tier = "Standard"
account_replication_type = "LRS"
account_kind = "StorageV2"
https_traffic_only_enabled = true
min_tls_version = "TLS1_2"
allow_nested_items_to_be_public = false
tags = local.tags
}
resource "azurerm_key_vault" "ml" {
name = "kv-dp100-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "standard"
enable_rbac_authorization = true
soft_delete_retention_days = 7
tags = local.tags
}
resource "azurerm_application_insights" "ml" {
name = "appi-dp100-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
application_type = "web"
tags = local.tags
}סביבת העבודה קושרת את שלוש התלויות יחד ומקבלת זהות מנוהלת המוקצית על ידי המערכת, שבה ישתמשו יעדי מחשוב, מערכי נתונים ונקודות קצה במורד הזרם כדי לקרוא מהתלויות. התחום ניהול משאבי Azure עבור ML של DP-100 בודק בדיוק את הצורה הזו — סביבת עבודה + זהות + הקצאות תפקידים.
אנו מגדירים public_network_access_enabled = true כדי לשמור על פשטות המעבדה; סביבות עבודה בסביבת ייצור משתמשות בדרך כלל בנקודות קצה פרטיות (תחום תכנון והכנת פתרון למידת מכונה של DP-100 בודק וריאנטים של private-link).
resource "azurerm_machine_learning_workspace" "main" {
name = "mlw-dp100-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
application_insights_id = azurerm_application_insights.ml.id
key_vault_id = azurerm_key_vault.ml.id
storage_account_id = azurerm_storage_account.ml.id
public_network_access_enabled = true
identity {
type = "SystemAssigned"
}
tags = local.tags
}עבודות אימון דורשות מחשוב. אשכולות מחשוב של Azure ML הם מאגרי מכונות וירטואליות מנוהלות המותאמות לפי עומק תור העבודה. min_node_count = 0 היא ההגדרה החובה לייעול עלויות של DP-100 עבור סביבות עבודה למעבדה/פיתוח — כאשר אין עבודות בתור, האשכול מותאם לאפס צמתים ומחויב ב-0$ (רק מטא-נתונים).
Standard_DS3_v2 (4 vCPU, 14 GB RAM, $0.30 לשעה) היא ברירת המחדל הטיפוסית למעבדה — גדולה מספיק להרצת עבודות אימון של sklearn או PyTorch קטנות, קטנה מספיק כדי להיות זולה. אשכולות אימון בסביבת ייצור משתמשים ב-SKUs של GPU (משפחת Standard_NC6s_v3).
scale_down_nodes_after_idle_duration = "PT15M" (משך זמן ISO 8601 ל-15 דקות) היא שאלת העלות החוזרת ב-DP-100: הגדרה ארוכה מדי משאירה צמתים יקרים פועלים; קצרה מדי גורמת לתחולת יתר. 15 דקות היא ברירת המחדל המתועדת של Azure.
resource "azurerm_machine_learning_compute_cluster" "main" {
name = "cpu-cluster"
location = azurerm_resource_group.main.location
vm_priority = "Dedicated"
vm_size = "Standard_DS3_v2"
machine_learning_workspace_id = azurerm_machine_learning_workspace.main.id
scale_settings {
min_node_count = 0
max_node_count = 2
scale_down_nodes_after_idle_duration = "PT15M"
}
identity {
type = "SystemAssigned"
}
tags = local.tags
}terraform destroy מפרק הכל. נקודות מפתח:
purge_soft_delete_on_destroy = true בתכונות הספק גורם למחיקה ב-Key Vault להיות מחיקה בפועל. מחיקה רכה של סביבת עבודה ניתנת להגדרה בפורטל, אך terraform destroy עובד בכל מקרה.DP-100 מכסה יותר משטחי ML ב-Azure שהמעבדה הזו לא יכולה להכיל — Compute Instances (מכונות וירטואליות IDE למשתמש יחיד, יקרות מאוד במצב סרק), Online Endpoints (הסקת נתונים מנוהלת בזמן אמת), Batch Endpoints (הסקת נתונים מנוהלת בקבוצות), עבודות AutoML, Designer (עורך צינורות חזותיים), אינטגרציית מעקב MLflow, ParallelRunStep, תהליכי קידום רישום מודלים, וכל קטלוג נכסי הנתונים / מאגרי הנתונים.
אנו נצמדים למישור הבקרה של סביבת העבודה מכיוון שהוא התשתית שכל תבנית DP-100 מתחברת אליה. נקודות קצה מתחברות לסביבת העבודה. עבודות רצות על אשכול המחשוב. מודלים נרשמים מול מעקב MLflow של סביבת העבודה. מערכי נתונים נוחתים בחשבון האחסון.
עבור המשטחים לעיל, עיין בקטעי עיון ו-Editorial של דף אישור זה. את התחומים אימון מודלים של ML ו-פריסה ותפעול פתרונות ML של DP-100 כדאי ללמוד על ידי הרצת עבודות מול סביבת עבודה זו — המעבדה מספקת לך את התשתית; ה-Python SDK מבצע את האימון והפריסה בפועל.