Kelola ruang kerja Azure Machine Learning menggunakan Terraform
Dalam artikel ini, Anda mempelajari cara membuat dan mengelola ruang kerja Azure Machine Learning menggunakan file konfigurasi Terraform. Dengan menggunakan file konfigurasi berbasis templat Terraform Anda dapat mendefinisikan, membuat, dan mengonfigurasikan sumber daya Azure dengan cara yang dapat diulangi dan diprediksi. Terraform akan melacak status sumber daya serta mampu membersihkan dan menghancurkan sumber daya.
Konfigurasi Terraform adalah sebuah dokumen yang mendefinisikan sumber daya yang dibutuhkan untuk penyebaran. Konfigurasi ini juga dapat menentukan parameter penyebaran. Variabel digunakan untuk menyediakan nilai input saat menggunakan konfigurasi.
Prasyarat
- Langganan Azure. Jika Anda tidak memilikinya, cobalah Azure Machine Learning versi gratis atau berbayar.
- Versi terinstal Azure CLI.
- Konfigurasikan Terraform: ikuti petunjuk dalam artikel ini dan artikel Terraform dan konfigurasikan akses ke Azure.
Batasan
Saat membuat ruang kerja baru, Anda dapat membuat layanan yang diperlukan secara otomatis oleh ruang kerja atau menggunakan layanan yang sudah 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, membuat ruang kerja di langganan A yang menggunakan akun penyimpanan dari langganan B, kumpulan nama Pembelajaran Mesin Azure harus terdaftar di langganan B sebelum Anda dapat menggunakan akun penyimpanan dengan ruang kerja.
Penyedia sumber daya untuk Pembelajaran Mesin Azure adalah Microsoft.MachineLearningServices. Untuk informasi tentang cara melihat apakah sudah terdaftar dan cara mendaftarkannya, lihat artikel jenis dan penyedia sumber daya Azure.
Penting
Ini hanya berlaku untuk sumber daya yang disediakan selama pembuatan ruang kerja, Azure Storage Account, Azure Container Register, Azure Key Vault, dan Application Insights.
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, Anda tidak dapat membuatnya kembali tanpa menghapus dan membuat ulang ruang kerja.
Untuk informasi selengkapnya tentang penggunaan instans Application Insights ini, lihat Memantau dan mengumpulkan data dari titik akhir layanan web Pembelajaran Mesin.
Mendeklarasikan penyedia Azure
Buat file konfigurasi Terraform yang mendeklarasikan penyedia Azure:
Buat file baru bernama
main.tf
. Jika bekerja dengan Azure Cloud Shell, gunakan bash:code main.tf
Tempelkan kode berikut ke dalam editor:
main.tf:
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 }
Simpan file (<Ctrl>S), dan keluar dari editor (<Ctrl>Q).
Menyebarkan ruang kerja
Konfigurasi Terraform berikut dapat digunakan untuk membuat ruang kerja Azure Machine Learning. Jika Anda membuat ruang kerja Azure Machine Learning, berbagai layanan lain diperlukan sebagai dependensi. Templat juga menentukan sumber daya terkait ini ke ruang kerja. Tergantung kebutuhan, Anda dapat memilih untuk menggunakan templat yang membuat sumber daya dengan konektivitas jaringan publik atau privat.
Beberapa sumber daya di Azure membutuhkan nama yang unik secara global. Sebelum menyebarkan sumber daya Anda menggunakan templat berikut, atur variabel name
ke nilai yang unik.
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"
}
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"
}
}
Pemecahan 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.
Langkah berikutnya
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 Registri Terraform.
Untuk menemukan contoh templat "mulai cepat" untuk Terraform, lihat Templat Mulai Cepat Terraform Azure:
- 101: Ruang kerja dan komputasi pembelajaran mesin – kumpulan sumber daya minimal yang diperlukan untuk mulai menggunakan Azure Pembelajaran Mesin.
- 201: Ruang kerja pembelajaran mesin, komputasi, dan set komponen jaringan dan isolasi jaringan – semua sumber daya yang dibutuhkan untuk membuat lingkungan pilot produksi untuk digunakan bersama data HBI.
- 202: Serupa dengan 201, tetapi dengan opsi untuk membawa komponen jaringan yang sudah ada.
- 301: Ruang kerja Pembelajaran Mesin (Secure Hub dan Spoke dengan Firewall).
Untuk mempelajari opsi konfigurasi jaringan selengkapnya, lihat Mengamankan sumber daya ruang kerja Azure Machine Learning menggunakan jaringan virtual (VNet).
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 menjaga Azure Pembelajaran Mesin Anda tetap terbarui dengan pembaruan keamanan terbaru, lihat Manajemen kerentanan.