Hantera Azure Machine Learning-arbetsytor med Terraform
I den här artikeln får du lära dig hur du skapar och hanterar en Azure Machine Learning-arbetsyta med hjälp av Terraform-konfigurationsfiler. Med Terraforms mallbaserade konfigurationsfiler kan du definiera, skapa och konfigurera Azure-resurser på ett repeterbart och förutsägbart sätt. Terraform spårar resurstillstånd och kan rensa och förstöra resurser.
En Terraform-konfiguration är ett dokument som definierar de resurser som behövs för en distribution. Den kan också ange distributionsvariabler. Variabler används för att ange indatavärden när du använder konfigurationen.
Förutsättningar
- En Azure-prenumeration. Om du inte har någon kan du prova den kostnadsfria eller betalda versionen av Azure Machine Learning.
- En installerad version av Azure CLI.
- Konfigurera Terraform: följ anvisningarna i den här artikeln och Terraform och konfigurera åtkomst till Azure-artikeln .
Begränsningar
När du skapar en ny arbetsyta kan du antingen automatiskt skapa tjänster som behövs av arbetsytan eller använda befintliga tjänster. Om du vill använda befintliga tjänster från en annan Azure-prenumeration än arbetsytan måste du registrera Azure Machine Learning-namnområdet i prenumerationen som innehåller dessa tjänster. Om du till exempel skapar en arbetsyta i prenumeration A som använder ett lagringskonto från prenumeration B måste Azure Machine Learning-namnområdet registreras i prenumeration B innan du kan använda lagringskontot med arbetsytan.
Resursprovidern för Azure Machine Learning är Microsoft.MachineLearningServices. Information om hur du ser om den är registrerad och hur du registrerar den finns i artikeln Azure-resursprovidrar och -typer .
Viktigt!
Detta gäller endast för resurser som tillhandahålls när arbetsytan skapas. Azure Storage-konton, Azure Container Register, Azure Key Vault och Application Insights.
Dricks
En Azure Application Insights-instans skapas när du skapar arbetsytan. Du kan ta bort Application Insights-instansen när klustret har skapats om du vill. Om du tar bort den begränsas den information som samlas in från arbetsytan och kan göra det svårare att felsöka problem. Om du tar bort Application Insights-instansen som skapats av arbetsytan kan du inte återskapa den utan att ta bort och återskapa arbetsytan.
Mer information om hur du använder den här Application Insights-instansen finns i Övervaka och samla in data från Machine Learning-webbtjänstslutpunkter.
Deklarera Azure-providern
Skapa Terraform-konfigurationsfilen som deklarerar Azure-providern:
Skapa en ny fil med namnet
main.tf
. Om du arbetar med Azure Cloud Shell använder du bash:code main.tf
Klistra in följande kod i redigeringsprogrammet:
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 }
Spara filen (Ctrl S) och avsluta redigeraren (<Ctrl>Q).><
Distribuera en arbetsyta
Följande Terraform-konfigurationer kan användas för att skapa en Azure Machine Learning-arbetsyta. När du skapar en Azure Machine Learning-arbetsyta krävs olika andra tjänster som beroenden. Mallen anger även dessa associerade resurser till arbetsytan. Beroende på dina behov kan du välja att använda mallen som skapar resurser med antingen offentlig eller privat nätverksanslutning.
Vissa resurser i Azure kräver globalt unika namn. Innan du distribuerar dina resurser med hjälp av följande mallar anger du variabeln name
till ett värde som är unikt.
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"
}
}
Felsökning
Resursproviderfel
När du skapar en Azure Machine Learning-arbetsyta eller en resurs som används av arbetsytan kan du få ett fel som liknar följande meddelanden:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
De flesta resursprovidrar registreras automatiskt, men inte alla. Om du får det här meddelandet måste du registrera den angivna providern.
Följande tabell innehåller en lista över de resursprovidrar som krävs av Azure Machine Learning:
Resursprovider | Varför det behövs |
---|---|
Microsoft.MachineLearningServices | Skapa Azure Machine Learning-arbetsytan. |
Microsoft.Storage | Azure Storage-kontot används som standardlagring för arbetsytan. |
Microsoft.ContainerRegistry | Azure Container Registry används av arbetsytan för att skapa Docker-avbildningar. |
Microsoft.KeyVault | Azure Key Vault används av arbetsytan för att lagra hemligheter. |
Microsoft.Notebooks | Integrerade notebook-filer på Azure Machine Learning-beräkningsinstansen. |
Microsoft.ContainerService | Om du planerar att distribuera tränade modeller till Azure Kubernetes Services. |
Om du planerar att använda en kundhanterad nyckel med Azure Machine Learning måste följande tjänsteleverantörer registreras:
Resursprovider | Varför det behövs |
---|---|
Microsoft.DocumentDB | Azure CosmosDB-instans som loggar metadata för arbetsytan. |
Microsoft.Search | Azure Search tillhandahåller indexeringsfunktioner för arbetsytan. |
Om du planerar att använda ett hanterat virtuellt nätverk med Azure Machine Learning måste resursprovidern Microsoft.Network vara registrerad. Den här resursprovidern används av arbetsytan när du skapar privata slutpunkter för det hanterade virtuella nätverket.
Information om hur du registrerar resursprovidrar finns i Lösa fel för registrering av resursprovider.
Nästa steg
Mer information om Terraform-support i Azure finns i Terraform i Azure-dokumentationen.
Mer information om Terraform Azure-providern och Machine Learning-modulen finns i Terraform Registry Azure Resource Manager-providern.
Information om hur du hittar mallexempel för "snabbstart" för Terraform finns i Snabbstartsmallar för Azure Terraform:
- 101: Maskininlärningsarbetsyta och beräkning – den minimala uppsättning resurser som behövs för att komma igång med Azure Machine Learning.
- 201: Maskininlärningsarbetsyta, beräkning och en uppsättning nätverkskomponenter för nätverksisolering – alla resurser som behövs för att skapa en produktionspilotmiljö för användning med HBI-data.
- 202: Liknar 201, men med alternativet att ta med befintliga nätverkskomponenter..
- 301: Machine Learning-arbetsyta (säker hubb och eker med brandvägg).
Mer information om alternativ för nätverkskonfiguration finns i Skydda Azure Machine Learning-arbetsyteresurser med hjälp av virtuella nätverk (VNet).
Alternativa Azure Resource Manager-mallbaserade distributioner finns i Distribuera resurser med Resource Manager-mallar och Resource Manager REST API.
Information om hur du håller Din Azure Machine Learning uppdaterad med de senaste säkerhetsuppdateringarna finns i Sårbarhetshantering.