Mengelola ruang kerja Azure Pembelajaran Mesin dengan menggunakan Terraform
Dalam artikel ini, Anda mempelajari cara membuat ruang kerja Azure Pembelajaran Mesin dengan menggunakan file konfigurasi Terraform. File konfigurasi berbasis templat Terraform memungkinkan Anda menentukan, membuat, dan mengonfigurasi sumber daya Azure dengan cara yang dapat diulang dan dapat diprediksi. Terraform melacak status sumber daya dan dapat membersihkan dan menghancurkan sumber daya.
File konfigurasi Terraform adalah dokumen yang menentukan sumber daya yang diperlukan untuk penyebaran. Konfigurasi Terraform juga dapat menentukan variabel penyebaran yang akan digunakan untuk memberikan nilai input saat Anda menerapkan konfigurasi.
Prasyarat
- Langganan Azure dengan versi gratis atau berbayar Azure Pembelajaran Mesin. Jika Anda tidak memiliki langganan Azure, buat akun gratis sebelum Anda memulai.
- Terraform diinstal dan dikonfigurasi sesuai dengan instruksi di Mulai Cepat: Menginstal dan mengonfigurasi Terraform.
Batasan
Saat membuat ruang kerja baru, Anda dapat secara otomatis membuat layanan yang diperlukan oleh ruang kerja atau menggunakan layanan yang ada. Jika Anda ingin menggunakan layanan yang sudah ada dari langganan Azure yang berbeda dari ruang kerja, Anda harus mendaftarkan kumpulan nama Pembelajaran Mesin Azure dalam langganan yang berisi layanan tersebut. Misalnya, jika Anda membuat ruang kerja di langganan A yang menggunakan akun penyimpanan di langganan B, namespace Azure Pembelajaran Mesin harus terdaftar di langganan B sebelum ruang kerja dapat menggunakan akun penyimpanan.
Penyedia sumber daya untuk Pembelajaran Mesin Azure adalah Microsoft.MachineLearningServices. Untuk informasi tentang melihat apakah terdaftar atau mendaftarkannya, lihat Penyedia dan jenis sumber daya Azure.
Penting
Informasi ini hanya berlaku untuk sumber daya yang disediakan selama pembuatan ruang kerja: Akun Azure Storage, Azure Container Registry, Azure Key Vault, dan Application Insights.
Batasan berikut berlaku untuk instans Application Insights yang dibuat selama pembuatan ruang kerja:
Tip
Instans Azure Application Insights dibuat saat Anda membuat ruang kerja. Anda dapat menghapus instans Application Insights setelah pembuatan kluster jika Anda mau. Menghapusnya membatasi informasi yang dikumpulkan dari ruang kerja, dan mungkin membuatnya lebih sulit untuk memecahkan masalah. Jika Anda menghapus instans Application Insights yang dibuat oleh ruang kerja, satu-satunya cara untuk membuatnya kembali adalah dengan menghapus dan membuat ulang ruang kerja.
Untuk informasi selengkapnya tentang menggunakan instans Application Insights, lihat Memantau dan mengumpulkan data dari titik akhir layanan web Pembelajaran Mesin.
Membuat ruang kerja
Buat file bernama main.tf yang memiliki kode berikut.
data "azurerm_client_config" "current" {}
resource "azurerm_resource_group" "default" {
name = "${random_pet.prefix.id}-rg"
location = var.location
}
resource "random_pet" "prefix" {
prefix = var.prefix
length = 2
}
resource "random_integer" "suffix" {
min = 10000000
max = 99999999
}
Deklarasikan penyedia Azure dalam file bernama providers.tf yang memiliki kode berikut.
terraform {
required_version = ">= 1.0"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = ">= 3.0, < 4.0"
}
random = {
source = "hashicorp/random"
version = ">= 3.0"
}
}
}
provider "azurerm" {
features {
key_vault {
recover_soft_deleted_key_vaults = false
purge_soft_delete_on_destroy = false
purge_soft_deleted_keys_on_destroy = false
}
resource_group {
prevent_deletion_if_contains_resources = false
}
}
}
Konfigurasikan ruang kerja
Untuk membuat ruang kerja Azure Pembelajaran Mesin, gunakan salah satu konfigurasi Terraform berikut. Ruang kerja Azure Pembelajaran Mesin memerlukan berbagai layanan lain sebagai dependensi. Templat menentukan sumber daya terkait ini. Bergantung pada kebutuhan Anda, Anda dapat memilih untuk menggunakan templat yang membuat sumber daya dengan konektivitas jaringan publik atau privat.
Catatan
Beberapa sumber daya di Azure membutuhkan nama yang unik secara global. Sebelum menyebarkan sumber daya Anda, pastikan untuk mengatur name
variabel ke nilai unik.
Konfigurasi berikut membuat ruang kerja dengan konektivitas jaringan publik.
Tentukan variabel berikut dalam file yang disebut variables.tf.
variable "environment" {
type = string
description = "Name of the environment"
default = "dev"
}
variable "location" {
type = string
description = "Location of the resources"
default = "eastus"
}
variable "prefix" {
type = string
description = "Prefix of the resource name"
default = "ml"
}
Tentukan konfigurasi ruang kerja berikut dalam file yang disebut workspace.tf:
# Dependent resources for Azure Machine Learning
resource "azurerm_application_insights" "default" {
name = "${random_pet.prefix.id}-appi"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
application_type = "web"
}
resource "azurerm_key_vault" "default" {
name = "${var.prefix}${var.environment}${random_integer.suffix.result}kv"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "premium"
purge_protection_enabled = false
}
resource "azurerm_storage_account" "default" {
name = "${var.prefix}${var.environment}${random_integer.suffix.result}st"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
account_tier = "Standard"
account_replication_type = "GRS"
allow_nested_items_to_be_public = false
}
resource "azurerm_container_registry" "default" {
name = "${var.prefix}${var.environment}${random_integer.suffix.result}cr"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
sku = "Premium"
admin_enabled = true
}
# Machine Learning workspace
resource "azurerm_machine_learning_workspace" "default" {
name = "${random_pet.prefix.id}-mlw"
location = azurerm_resource_group.default.location
resource_group_name = azurerm_resource_group.default.name
application_insights_id = azurerm_application_insights.default.id
key_vault_id = azurerm_key_vault.default.id
storage_account_id = azurerm_storage_account.default.id
container_registry_id = azurerm_container_registry.default.id
public_network_access_enabled = true
identity {
type = "SystemAssigned"
}
}
Membuat dan menerapkan paket
Untuk membuat ruang kerja, jalankan kode berikut:
terraform init
terraform plan \
# -var <any of the variables set in variables.tf> \
-out demo.tfplan
terraform apply "demo.tfplan"
Memecahkan masalah kesalahan penyedia sumber daya
Saat membuat ruang kerja Azure Machine Learning, atau sumber daya yang digunakan oleh ruang kerja, Anda mungkin menerima kesalahan yang mirip dengan pesan berikut:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
Sebagian besar penyedia sumber daya secara otomatis terdaftar, tetapi tidak semua. Jika Anda menerima pesan ini, Anda perlu mendaftarkan penyedia yang disebutkan.
Tabel berikut berisi daftar penyedia sumber daya yang diperlukan oleh Azure Machine Learning:
Penyedia sumber daya | Mengapa dibutuhkan |
---|---|
Microsoft.MachineLearningServices | Membuat ruang kerja Azure Machine Learning. |
Microsoft.Storage | Akun Azure Storage: Digunakan sebagai penyimpanan data default untuk ruang kerja. |
Microsoft.ContainerRegistry | Azure Container Registry digunakan oleh ruang kerja untuk membangun gambar Docker. |
Microsoft.KeyVault | Azure Key Vault digunakan oleh ruang kerja untuk menyimpan rahasia. |
Microsoft.Notebooks | Notebook terintegrasi pada instans komputasi Azure Machine Learning. |
Microsoft.ContainerService | Jika Anda berencana menyebarkan model terlatih ke Azure Kubernetes Services. |
Jika Anda berencana menggunakan kunci yang dikelola pelanggan dengan Azure Machine Learning, maka penyedia layanan berikut harus terdaftar:
Penyedia sumber daya | Mengapa dibutuhkan |
---|---|
Microsoft.DocumentDB | Instans Azure CosmosDB yang mencatat metadata untuk ruang kerja. |
Microsoft.Search | Azure Search menyediakan kemampuan pengindeksan untuk ruang kerja. |
Jika Anda berencana menggunakan jaringan virtual terkelola dengan Azure Pembelajaran Mesin, penyedia sumber daya Microsoft.Network harus didaftarkan. Penyedia sumber daya ini digunakan oleh ruang kerja saat membuat titik akhir privat untuk jaringan virtual terkelola.
Untuk informasi selengkapnya tentang cara mendaftarkan penyedia sumber daya, lihat Mengatasi kesalahan untuk pendaftaran penyedia sumber daya.
Sumber daya terkait
Untuk informasi selengkapnya tentang dukungan Terraform di Azure, lihat dokumentasi Terraform di Azure.
Untuk detail tentang penyedia Terraform Azure dan modul Pembelajaran Mesin, lihat Penyedia Azure Resource Manager Terraform Registry.
Untuk menemukan contoh templat mulai cepat untuk Terraform, lihat templat mulai cepat Azure Terraform berikut ini.
- 101: Ruang kerja dan komputasi pembelajaran mesin menyediakan set sumber daya minimal yang diperlukan untuk mulai menggunakan Azure Pembelajaran Mesin.
- 201: Ruang kerja pembelajaran mesin, komputasi, dan serangkaian komponen jaringan untuk isolasi jaringan menyediakan semua sumber daya yang diperlukan untuk membuat lingkungan pilot produksi untuk digunakan dengan data dampak bisnis tinggi (HBI).
- 202: Mirip dengan 201, tetapi dengan opsi untuk membawa komponen jaringan yang ada.
- 301: Pembelajaran Mesin ruang kerja (hub aman dan spoke dengan firewall).
Untuk mempelajari selengkapnya tentang opsi konfigurasi jaringan, lihat Mengamankan azure Pembelajaran Mesin sumber daya ruang kerja menggunakan jaringan virtual.
Untuk penyebaran berbasis templat Azure Resource Manager alternatif, lihat Menyebarkan sumber daya dengan templat Resource Manager dan REST API Resource Manager.
Untuk informasi tentang cara memperbarui ruang kerja Azure Pembelajaran Mesin Anda dengan pembaruan keamanan terbaru, lihat Manajemen kerentanan.