Správa pracovních prostorů Azure Machine Learning pomocí Terraformu

V tomto článku se dozvíte, jak vytvořit a spravovat pracovní prostor Azure Machine Learning pomocí konfiguračních souborů Terraformu. Konfigurační soubory terraformu založené na šablonách 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.

Konfigurace Terraformu je dokument, který definuje prostředky potřebné pro nasazení. Může také určovat proměnné nasazení. Proměnné se používají k zadání vstupních hodnot při použití konfigurace.

Požadavky

Omezení

  • Při vytváření nového pracovního prostoru můžete buď automaticky vytvářet služby potřebné pracovním prostorem, nebo používat existující služby. Pokud chcete použít existující služby z jiného předplatného Azure než pracovní prostor, musíte zaregistrovat obor názvů služby Azure Machine Learning v předplatném, které tyto služby obsahuje. Například vytvoření pracovního prostoru v předplatném A, který používá účet úložiště z předplatného B, musí být obor názvů Služby Azure Machine Learning zaregistrovaný v předplatném B, abyste mohli účet úložiště použít s pracovním prostorem.

    Zprostředkovatel prostředků pro Azure Machine Learning je Microsoft.MachineLearningServices. Informace o tom, jak zjistit, jestli je zaregistrovaný a jak ho zaregistrovat, najdete v článku o poskytovatelích a typech prostředků Azure .

    Důležité

    To platí jenom pro prostředky poskytnuté během vytváření pracovního prostoru; Účty Azure Storage, Azure Container Register, Azure Key Vault a Application Insights.

Tip

Při vytváření pracovního prostoru se vytvoří instance Aplikace Azure Insights. Instanci Application Insights můžete odstranit po vytvoření clusteru, pokud chcete. Odstraněním se omezí 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, nemůžete ji znovu vytvořit bez odstranění a opětovného vytvoření pracovního prostoru.

Další informace o používání této instance Application Insights najdete v tématu Monitorování a shromažďování dat z koncových bodů webové služby Machine Learning.

Deklarování zprostředkovatele Azure

Vytvořte konfigurační soubor Terraformu, který deklaruje poskytovatele Azure:

  1. Vytvořte nový soubor s názvem main.tf. Pokud pracujete s Azure Cloud Shell, použijte Bash:

    code main.tf
    
  2. Do editoru vložte následující kód:

    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. Uložte soubor (<Ctrl>S) a ukončete editor (<Ctrl>Q).

Nasazení pracovního prostoru

K vytvoření pracovního prostoru Azure Machine Learning je možné použít následující konfigurace Terraformu. Při vytváření pracovního prostoru Azure Machine Learning se jako závislosti vyžadují různé další služby. Šablona také určuje tyto přidružené prostředky k pracovnímu prostoru. 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.

Některé prostředky v Azure vyžadují globálně jedinečné názvy. Před nasazením prostředků pomocí následujících šablon nastavte name proměnnou na jedinečnou hodnotu.

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

Řešení potíží

Chyby 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ím 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 automaticky zaregistruje, ale ne všechny. Pokud se vám tato zpráva zobrazí, musíte zaregistrovat zprostředkovatele.

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 úložiště Azure se používá jako výchozí úložiště pro pracovní prostor.
Microsoft.ContainerRegistry Azure Container Registry pracovní prostor používá k sestavení imagí Dockeru.
Microsoft.KeyVault Azure Key Vault používá pracovní prostor k ukládání tajných kódů.
Microsoft.Notebooks/NotebookProxies Integrované poznámkové bloky ve výpočetní instanci služby Azure Machine Learning
Microsoft.ContainerService Pokud plánujete nasadit natrénované modely do služeb 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/databaseAccounts Instance Azure CosmosDB, která protokoluje metadata pro pracovní prostor.
Microsoft.Search/searchServices Azure Search poskytuje funkce indexování pro pracovní prostor.

Informace o registraci poskytovatelů prostředků najdete v tématu Řešení chyb registrace poskytovatele prostředků.

Další kroky