Zarządzanie Azure Machine Learning obszarami roboczymi przy użyciu narzędzia Terraform (wersja zapoznawcza)

Z tego artykułu dowiesz się, jak utworzyć obszar roboczy programu Terraform i zarządzać Azure Machine Learning przy użyciu plików konfiguracji programu Terraform. Pliki konfiguracji narzędzia Terraformoparte na szablonach umożliwiają definiowanie, tworzenie i konfigurowanie zasobów platformy Azure w powtarzalny i przewidywalny sposób. Program Terraform śledzi stan zasobów i jest w stanie oczyścić i zniszczyć zasoby.

Konfiguracja programu Terraform to dokument, który definiuje zasoby potrzebne do wdrożenia. Może również określać zmienne wdrożenia. Zmienne są używane do podania wartości wejściowych podczas korzystania z konfiguracji.

Ważne

Ta funkcja jest obecnie w publicznej wersji zapoznawczej. Ta wersja zapoznawcza jest dostarczana bez umowy dotyczącej poziomu usług i nie jest zalecana w przypadku obciążeń produkcyjnych. Niektóre funkcje mogą być nieobsługiwane lub ograniczone. Aby uzyskać więcej informacji, zobacz Uzupełniające warunki korzystania z wersji zapoznawczych platformy Microsoft Azure.

Wymagania wstępne

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 Azure Cloud Shell, użyj powłoki bash:

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

    main.tf:

    terraform {
      required_version = ">=1.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "=2.76.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    data "azurerm_client_config" "current" {}
    
    resource "azurerm_resource_group" "default" {
      name     = "rg-${var.name}-${var.environment}"
      location = var.location
    }
    
  3. Zapisz plik (< Ctrl>S) i zamknij edytor < (Ctrl>Q).

Wdrażanie obszaru roboczego

Następujące konfiguracje programu Terraform mogą służyć do tworzenia Azure Machine Learning roboczego. Podczas tworzenia obszaru roboczego Azure Machine Learning wymagane są różne inne usługi 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 połączeniem sieci publicznej lub prywatnej.

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

variables.tf:

variable "name" {
  type        = string
  description = "Name of the deployment"
}

variable "environment" {
  type        = string
  description = "Name of the environment"
  default     = "dev"
}

variable "location" {
  type        = string
  description = "Location of the resources"
  default     = "East US"
}

workspace.tf:

# Dependent resources for Azure Machine Learning
resource "azurerm_application_insights" "default" {
  name                = "appi-${var.name}-${var.environment}"
  location            = azurerm_resource_group.default.location
  resource_group_name = azurerm_resource_group.default.name
  application_type    = "web"
}

resource "azurerm_key_vault" "default" {
  name                     = "kv-${var.name}-${var.environment}"
  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                     = "st${var.name}${var.environment}"
  location                 = azurerm_resource_group.default.location
  resource_group_name      = azurerm_resource_group.default.name
  account_tier             = "Standard"
  account_replication_type = "GRS"
}

resource "azurerm_container_registry" "default" {
  name                = "cr${var.name}${var.environment}"
  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                    = "mlw-${var.name}-${var.environment}"
  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

  identity {
    type = "SystemAssigned"
  }
}

Rozwiązywanie problemów

Błędy dostawcy zasobów

Podczas tworzenia obszaru roboczego Azure Machine Learning lub zasobu używanego przez obszar roboczy może zostać wyświetlony komunikat o błędzie podobny do następującego:

  • 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, należy zarejestrować wymienionego dostawcę.

Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie problemów dotyczących rejestracji dostawcy zasobów.

Bieżące ograniczenia

  • Obecnie nie można używać narzędzia Terraform do wdrażania obszarów roboczych przy użyciu kluczy szyfrowania zarządzanych przez klienta.

Następne kroki