Správa pracovních prostorů Azure Machine Learning pomocí Terraformu
V tomto článku se dozvíte, jak vytvořit pracovní prostor Azure Machine Learning pomocí konfiguračních souborů Terraformu. Konfigurační soubory založené na šablonách Terraformu umožňují definovat, vytvářet a konfigurovat prostředky Azure opakovatelným a předvídatelným způsobem. Terraform sleduje stav prostředků a dokáže vyčistit a zničit prostředky.
Konfigurační soubor Terraformu je dokument, který definuje prostředky potřebné pro nasazení. Konfigurace Terraformu může také zadat proměnné nasazení, které se použijí k zadání vstupních hodnot při použití konfigurace.
Požadavky
- Předplatné Azure s bezplatnou nebo placenou verzí služby Azure Machine Learning Pokud ještě nemáte předplatné Azure, vytvořte si napřed bezplatný účet.
- Terraform nainstalovaný a nakonfigurovaný podle pokynů v rychlém startu: Instalace a konfigurace Terraformu
Omezení
Když vytvoříte nový pracovní prostor, můžete buď automaticky vytvořit služby potřebné pracovním prostorem, nebo použít existující služby. Pokud chcete použít existující služby z jiného předplatného Azure, než je pracovní prostor, musíte zaregistrovat obor názvů služby Azure Machine Learning v předplatném, které tyto služby obsahuje. Pokud například vytvoříte pracovní prostor v předplatném A, který používá účet úložiště v předplatném B, musí být obor názvů Služby Azure Machine Learning zaregistrovaný v předplatném B, aby mohl pracovní prostor použít účet úložiště.
Poskytovatel prostředků pro Azure Machine Learning je Microsoft.MachineLearningServices. Informace o tom, jestli je zaregistrovaná nebo zaregistrovaná, najdete v tématu Poskytovatelé a typy prostředků Azure.
Důležité
Tyto informace platí jenom pro prostředky poskytované během vytváření pracovního prostoru: účty Azure Storage, Azure Container Registry, Azure Key Vault a Application Insights.
Následující omezení platí pro instanci Application Insights vytvořenou během vytváření pracovního prostoru:
Tip
Při vytváření pracovního prostoru se vytvoří instance Aplikace Azure lication Insights. Pokud chcete, můžete instanci Application Insights po vytvoření clusteru odstranit. Odstraněním omezíte informace shromážděné z pracovního prostoru a může být obtížnější řešit problémy. Pokud odstraníte instanci Application Insights vytvořenou pracovním prostorem, jediným způsobem, jak ji znovu vytvořit, je odstranit a znovu vytvořit pracovní prostor.
Další informace o používání instance Application Insights najdete v tématu Monitorování a shromažďování dat z koncových bodů webové služby Machine Learning.
Vytvořte pracovní prostor.
Vytvořte soubor s názvem main.tf , který má následující kód.
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
}
Deklarujte zprostředkovatele Azure v souboru s názvem providers.tf , který má následující kód.
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
}
}
}
Konfigurace pracovního prostoru
Pokud chcete vytvořit pracovní prostor Azure Machine Learning, použijte jednu z následujících konfigurací Terraformu. Pracovní prostor Azure Machine Learning vyžaduje různé další služby jako závislosti. Šablona určuje tyto přidružené prostředky. V závislosti na vašich potřebách můžete použít šablonu, která vytváří prostředky s připojením k veřejné nebo privátní síti.
Poznámka:
Některé prostředky v Azure vyžadují globálně jedinečné názvy. Před nasazením prostředků nezapomeňte nastavit name
proměnné na jedinečné hodnoty.
Následující konfigurace vytvoří pracovní prostor s připojením k veřejné síti.
Definujte následující proměnné v souboru s názvem 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"
}
Definujte v souboru s názvem workspace.tf následující konfiguraci pracovního prostoru:
# 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"
}
}
Vytvoření a použití plánu
Pokud chcete vytvořit pracovní prostor, spusťte následující kód:
terraform init
terraform plan \
# -var <any of the variables set in variables.tf> \
-out demo.tfplan
terraform apply "demo.tfplan"
Řešení chyb poskytovatele prostředků
Při vytváření pracovního prostoru Azure Machine Learning nebo prostředku používaného pracovním prostorem se může zobrazit chyba podobná následující zprávě:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
Většina poskytovatelů prostředků se registruje automaticky, ale ne všechny. Pokud se zobrazí tato zpráva, musíte zaregistrovat uvedeného poskytovatele.
Následující tabulka obsahuje seznam poskytovatelů prostředků vyžadovaných službou Azure Machine Learning:
Poskytovatel prostředků | Proč je to potřeba |
---|---|
Microsoft.MachineLearningServices | Vytvoření pracovního prostoru Azure Machine Learning |
Microsoft.Storage | Účet služby Azure Storage se používá jako výchozí úložiště pro pracovní prostor. |
Microsoft.ContainerRegistry | Azure Container Registry používá pracovní prostor k vytváření imagí Dockeru. |
Microsoft.KeyVault | Azure Key Vault používá pracovní prostor k ukládání tajných kódů. |
Microsoft.Notebooks | Integrované poznámkové bloky ve výpočetní instanci služby Azure Machine Learning |
Microsoft.ContainerService | Pokud plánujete nasadit natrénované modely do azure Kubernetes Services. |
Pokud plánujete používat klíč spravovaný zákazníkem se službou Azure Machine Learning, musí být zaregistrovaní následující poskytovatelé služeb:
Poskytovatel prostředků | Proč je to potřeba |
---|---|
Microsoft.DocumentDB | Instance Azure CosmosDB, která protokoluje metadata pro pracovní prostor. |
Microsoft.Search | Azure Search poskytuje možnosti indexování pro pracovní prostor. |
Pokud plánujete používat spravovanou virtuální síť se službou Azure Machine Learning, musí být zaregistrovaný poskytovatel prostředků Microsoft.Network . Tento poskytovatel prostředků je používán pracovním prostorem při vytváření privátních koncových bodů pro spravovanou virtuální síť.
Informace o registraci poskytovatelů prostředků najdete v tématu Řešení chyb registrace poskytovatele prostředků.
Související prostředky
Další informace o podpoře Terraformu v Azure najdete v dokumentaci k Terraformu v Azure.
Podrobnosti o poskytovateli Azure Terraformu a modulu Machine Learning najdete v tématu Zprostředkovatel Azure Resource Manageru pro Terraform Registry.
Pokud chcete najít příklady šablon pro Rychlý start pro Terraform, projděte si následující šablony rychlého startu Pro Azure Terraform.
- 101: Pracovní prostor a výpočetní prostředí machine learning poskytuje minimální sadu prostředků potřebných k zahájení práce se službou Azure Machine Learning.
- 201: Pracovní prostor, výpočetní prostředky a sada síťových komponent pro izolaci sítě poskytují všechny prostředky potřebné k vytvoření produkčního pilotního prostředí pro použití s daty s vysokým obchodním dopadem (HBI).
- 202: Podobá se verzi 201, ale s možností přenést existující síťové komponenty.
- 301: Pracovní prostor Machine Learning (zabezpečený rozbočovač a paprskový s bránou firewall).
Další informace o možnostech konfigurace sítě najdete v tématu Zabezpečení prostředků pracovního prostoru Azure Machine Learning pomocí virtuálních sítí.
Alternativní nasazení založené na šablonách Azure Resource Manageru najdete v tématu Nasazení prostředků pomocí šablon Resource Manageru a rozhraní REST API Resource Manageru.
Informace o tom, jak udržovat pracovní prostor Služby Azure Machine Learning v aktualizovaném stavu s nejnovějšími aktualizacemi zabezpečení, najdete v tématu Správa ohrožení zabezpečení.