Zarządzanie obszarami roboczymi usługi Azure Machine Learning przy użyciu narzędzia Terraform
Z tego artykułu dowiesz się, jak utworzyć obszar roboczy usługi Azure Machine Learning przy użyciu plików konfiguracji programu Terraform. Pliki konfiguracji oparte na szablonach programu Terraform umożliwiają definiowanie, tworzenie i konfigurowanie zasobów platformy Azure w powtarzalny i przewidywalny sposób. Narzędzie Terraform śledzi stan zasobu i może wyczyścić i zniszczyć zasoby.
Plik konfiguracji programu Terraform to dokument, który definiuje zasoby potrzebne do wdrożenia. Konfiguracja narzędzia Terraform może również określać zmienne wdrożenia, które mają być używane do podawania wartości wejściowych podczas stosowania konfiguracji.
Wymagania wstępne
- Subskrypcja platformy Azure z bezpłatną lub płatną wersją usługi Azure Machine Learning. Jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto.
- Narzędzie Terraform zostało zainstalowane i skonfigurowane zgodnie z instrukcjami w przewodniku Szybki start: instalowanie i konfigurowanie programu Terraform.
Ograniczenia
Podczas tworzenia nowego obszaru roboczego możesz automatycznie tworzyć usługi wymagane przez obszar roboczy lub korzystać z istniejących usług. Jeśli chcesz używać istniejących usług z innej subskrypcji platformy Azure niż obszar roboczy, musisz zarejestrować przestrzeń nazw usługi Azure Machine Learning w subskrypcji zawierającej te usługi. Jeśli na przykład utworzysz obszar roboczy w subskrypcji A, który używa konta magazynu w subskrypcji B, przestrzeń nazw usługi Azure Machine Learning musi być zarejestrowana w subskrypcji B, zanim obszar roboczy będzie mógł korzystać z konta magazynu.
Dostawca zasobów dla usługi Azure Machine Learning to Microsoft.MachineLearningServices. Aby uzyskać informacje na temat tego, czy jest on zarejestrowany, czy zarejestrowany, zobacz Dostawcy zasobów i typy platformy Azure.
Ważne
Te informacje dotyczą tylko zasobów udostępnianych podczas tworzenia obszaru roboczego: konta usługi Azure Storage, usługa Azure Container Registry, usługa Azure Key Vault i usługa Application Insights.
Następujące ograniczenie dotyczy wystąpienia usługi Application Insights utworzonego podczas tworzenia obszaru roboczego:
Napiwek
Wystąpienie usługi aplikacja systemu Azure Insights jest tworzone podczas tworzenia obszaru roboczego. Jeśli chcesz, możesz usunąć wystąpienie usługi Application Insights po utworzeniu klastra. Usunięcie go ogranicza informacje zebrane z obszaru roboczego i może utrudnić rozwiązywanie problemów. Jeśli usuniesz wystąpienie usługi Application Insights utworzone przez obszar roboczy, jedynym sposobem ponownego utworzenia go jest usunięcie i ponowne utworzenie obszaru roboczego.
Aby uzyskać więcej informacji na temat korzystania z wystąpienia usługi Application Insights, zobacz Monitorowanie i zbieranie danych z punktów końcowych usługi sieci Web Machine Learning.
Tworzenie obszaru roboczego
Utwórz plik o nazwie main.tf zawierający następujący kod.
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
}
Zadeklaruj dostawcę platformy Azure w pliku o nazwie providers.tf , który ma następujący kod.
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
}
}
}
Skonfiguruj obszar roboczy
Aby utworzyć obszar roboczy usługi Azure Machine Learning, użyj jednej z następujących konfiguracji programu Terraform. Obszar roboczy usługi Azure Machine Learning wymaga różnych innych usług jako zależności. Szablon określa te skojarzone zasoby. W zależności od potrzeb możesz użyć szablonu, który tworzy zasoby z łącznością z siecią publiczną lub prywatną.
Uwaga
Niektóre zasoby na platformie Azure wymagają globalnie unikatowych nazw. Przed wdrożeniem zasobów upewnij się, że ustawiono name
zmienne na unikatowe wartości.
Poniższa konfiguracja tworzy obszar roboczy z łącznością sieci publicznej.
Zdefiniuj następujące zmienne w pliku o nazwie 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"
}
Zdefiniuj następującą konfigurację obszaru roboczego w pliku o nazwie 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"
}
}
Tworzenie i stosowanie planu
Aby utworzyć obszar roboczy, uruchom następujący kod:
terraform init
terraform plan \
# -var <any of the variables set in variables.tf> \
-out demo.tfplan
terraform apply "demo.tfplan"
Rozwiązywanie problemów z błędami dostawcy zasobów
Podczas tworzenia obszaru roboczego usługi Azure Machine Learning lub zasobu używanego przez obszar roboczy może wystąpić błąd podobny do następujących komunikatów:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
Większość dostawców zasobów jest automatycznie rejestrowana, ale nie wszystkie. Jeśli zostanie wyświetlony ten komunikat, musisz zarejestrować wymienionego dostawcę.
Poniższa tabela zawiera listę dostawców zasobów wymaganych przez usługę Azure Machine Learning:
Dostawca zasobów | Dlaczego jest to potrzebne |
---|---|
Microsoft.MachineLearningServices | Tworzenie obszaru roboczego usługi Azure Machine Learning. |
Microsoft.Storage | Konto usługi Azure Storage jest używane jako domyślny magazyn dla obszaru roboczego. |
Microsoft.ContainerRegistry | Usługa Azure Container Registry jest używana przez obszar roboczy do tworzenia obrazów platformy Docker. |
Microsoft.KeyVault | Usługa Azure Key Vault jest używana przez obszar roboczy do przechowywania wpisów tajnych. |
Microsoft.Notebooks | Zintegrowane notesy w wystąpieniu obliczeniowym usługi Azure Machine Learning. |
Microsoft.ContainerService | Jeśli planujesz wdrażanie wytrenowanych modeli w usługach Azure Kubernetes Services. |
Jeśli planujesz korzystanie z klucza zarządzanego przez klienta w usłudze Azure Machine Learning, należy zarejestrować następujących dostawców usług:
Dostawca zasobów | Dlaczego jest to potrzebne |
---|---|
Microsoft.DocumentDB | Wystąpienie usługi Azure CosmosDB, które rejestruje metadane obszaru roboczego. |
Microsoft.Search | Usługa Azure Search udostępnia funkcje indeksowania dla obszaru roboczego. |
Jeśli planujesz korzystanie z zarządzanej sieci wirtualnej z usługą Azure Machine Learning, dostawca zasobów Microsoft.Network musi być zarejestrowany. Ten dostawca zasobów jest używany przez obszar roboczy podczas tworzenia prywatnych punktów końcowych dla zarządzanej sieci wirtualnej.
Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie błędów dotyczących rejestracji dostawcy zasobów.
Powiązane zasoby
Aby dowiedzieć się więcej na temat obsługi programu Terraform na platformie Azure, zobacz dokumentację narzędzia Terraform na platformie Azure.
Aby uzyskać szczegółowe informacje na temat dostawcy platformy Azure programu Terraform i modułu Machine Learning, zobacz Dostawca usługi Azure Resource Manager w usłudze Terraform Registry.
Aby znaleźć przykłady szablonów szybkiego startu dla programu Terraform, zobacz następujące szablony szybkiego startu narzędzia Azure Terraform.
- 101: Obszar roboczy i obliczenia uczenia maszynowego zapewniają minimalny zestaw zasobów potrzebnych do rozpoczęcia pracy z usługą Azure Machine Learning.
- 201: Obszar roboczy uczenia maszynowego, obliczenia i zestaw składników sieci na potrzeby izolacji sieci udostępnia wszystkie zasoby potrzebne do utworzenia środowiska pilotażowego produkcji do użycia z danymi o dużym wpływie na działalność biznesową (HBI).
- 202: Podobnie jak w 201 r., ale z opcją przeniesienia istniejących składników sieciowych.
- 301: Obszar roboczy usługi Machine Learning (bezpieczny koncentrator i szprycha z zaporą).
Aby dowiedzieć się więcej na temat opcji konfiguracji sieci, zobacz Zabezpieczanie zasobów obszaru roboczego usługi Azure Machine Learning przy użyciu sieci wirtualnych.
Aby zapoznać się z alternatywnymi wdrożeniami opartymi na szablonach usługi Azure Resource Manager, zobacz Wdrażanie zasobów przy użyciu szablonów usługi Resource Manager i interfejsu API REST usługi Resource Manager.
Aby uzyskać informacje na temat aktualizowania obszaru roboczego usługi Azure Machine Learning przy użyciu najnowszych aktualizacji zabezpieczeń, zobacz Zarządzanie lukami w zabezpieczeniach.