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 Edukacja i zarządzać nim 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 umożliwia czyszczenie i niszczenie zasobów.

Konfiguracja narzędzia Terraform to dokument definiujący zasoby potrzebne do wdrożenia. Może również określać zmienne wdrożenia. Zmienne są używane do podawania wartości wejściowych podczas korzystania z konfiguracji.

Wymagania wstępne

Ograniczenia

  • Podczas tworzenia nowego obszaru roboczego można 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 Edukacja w subskrypcji zawierającej te usługi. Na przykład utworzenie obszaru roboczego w subskrypcji A korzystającej z konta magazynu z subskrypcji B, przestrzeń nazw usługi Azure Machine Edukacja musi być zarejestrowana w subskrypcji B, zanim będzie można używać konta magazynu z obszarem roboczym.

    Dostawca zasobów dla usługi Azure Machine Edukacja to Microsoft.Machine Edukacja Services. Aby uzyskać informacje na temat sposobu jego rejestrowania i rejestrowania, zobacz artykuł Azure resource providers and types (Dostawcy zasobów i typy platformy Azure).

    Ważne

    Dotyczy to tylko zasobów udostępnianych podczas tworzenia obszaru roboczego; Konta usługi Azure Storage, rejestr kontenerów platformy Azure, usługa Azure Key Vault i Szczegółowe informacje aplikacji.

Napiwek

Wystąpienie aplikacja systemu Azure Szczegółowe informacje jest tworzone podczas tworzenia obszaru roboczego. Jeśli chcesz, możesz usunąć wystąpienie aplikacji Szczegółowe informacje 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 aplikacji Szczegółowe informacje utworzone przez obszar roboczy, nie można go ponownie utworzyć bez usuwania i ponownego tworzenia obszaru roboczego.

Aby uzyskać więcej informacji na temat korzystania z tego wystąpienia usługi Application Szczegółowe informacje, zobacz Monitorowanie i zbieranie danych z punktów końcowych usługi internetowej Edukacja maszyny.

Deklarowanie dostawcy platformy Azure

Utwórz plik konfiguracji narzędzia Terraform, który deklaruje dostawcę platformy Azure:

  1. Utwórz nowy plik o nazwie main.tf. Jeśli pracujesz z usługą Azure Cloud Shell, użyj powłoki bash:

    code main.tf
    
  2. Wklej następujący kod do edytora:

    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
    }
    
  3. Zapisz plik (Ctrl S) i zamknij edytor (<Ctrl>Q).><

Wdrażanie obszaru roboczego

Poniższe konfiguracje programu Terraform mogą służyć do tworzenia obszaru roboczego usługi Azure Machine Edukacja. Podczas tworzenia obszaru roboczego usługi Azure Machine Edukacja różne inne usługi są wymagane jako zależności. Szablon określa również te skojarzone zasoby z obszarem roboczym. W zależności od potrzeb możesz użyć szablonu, który tworzy zasoby z łącznością z siecią publiczną lub prywatną.

Niektóre zasoby na platformie Azure wymagają globalnie unikatowych nazw. Przed wdrożeniem zasobów przy użyciu poniższych szablonów ustaw name zmienną na unikatową wartość.

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"
  }
}

Rozwiązywanie problemów

Błędy dostawcy zasobów

Podczas tworzenia obszaru roboczego usługi Azure Machine Edukacja lub zasobu używanego przez obszar roboczy może zostać wyświetlony 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 Edukacja:

Dostawca zasobów Dlaczego jest to potrzebne
Microsoft.Machine Edukacja Services Tworzenie obszaru roboczego usługi Azure Machine Edukacja.
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 na maszynie Azure Edukacja wystąpienia obliczeniowego.
Microsoft.ContainerService Jeśli planujesz wdrażanie wytrenowanych modeli w usługach Azure Kubernetes Services.

Jeśli planujesz używanie klucza zarządzanego przez klienta z usługą Azure Machine Edukacja, 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 Edukacja, należy zarejestrować dostawcę zasobów Microsoft.Network. 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.

Następne kroki