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 Učení pomocí konfiguračních souborů Terraformu. Konfigurační soubory založené na šablonách Terraformu 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.

Předpoklady

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ž je pracovní prostor, musíte zaregistrovat obor názvů azure machine Učení 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ů Azure Machine Učení zaregistrovaný v předplatném B, abyste mohli použít účet úložiště s pracovním prostorem.

    Poskytovatel prostředků pro Azure Machine Učení je Microsoft.Machine Učení Services. Informace o tom, jak zjistit, jestli je zaregistrovaná a jak ji zaregistrovat, najdete v článku o poskytovatelích a typech prostředků Azure.

    Důležité

    To platí pouze pro prostředky poskytnuté během vytváření pracovního prostoru; Účty azure Storage, Azure Container Register, Azure Key Vault a Přehledy aplikací.

Tip

Při vytváření pracovního prostoru se vytvoří instance Aplikace Azure Přehledy. Pokud chcete, můžete instanci Přehledy aplikace odstranit po vytvoření clusteru. Odstraněním omezíte informace shromážděné z pracovního prostoru a může být obtížnější řešit problémy. Pokud odstraníte aplikaci Přehledy instanci 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 Přehledy aplikace najdete v tématu Monitorování a shromažďování dat z koncových bodů webové služby Učení počítače.

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 Shellem, použijte Bash:

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

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

Nasazení pracovního prostoru

Následující konfigurace Terraformu je možné použít k vytvoření pracovního prostoru Azure Machine Učení. Při vytváření pracovního prostoru Azure Machine Učení 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 se můžete rozhodnout 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 "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"
  }
}

Řešení problému

Chyby poskytovatele prostředků

Při vytváření pracovního prostoru azure machine Učení 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 registruje automaticky, ale ne všechny. Pokud se zobrazí tato zpráva, musíte zaregistrovat uvedeného poskytovatele.

Následující tabulka obsahuje seznam poskytovatelů prostředků vyžadovaných službou Azure Machine Učení:

Poskytovatel prostředků Proč je to potřeba
Microsoft.Machine Učení Services Vytvoření pracovního prostoru Azure Machine Učení
Microsoft.Storage Účet služby Azure Storage se používá jako výchozí úložiště pro pracovní prostor.
Microsoft.ContainerRegistry Azure Container Registry používá pracovní prostor k vytváření imagí Dockeru.
Microsoft.KeyVault Azure Key Vault používá pracovní prostor k ukládání tajných kódů.
Microsoft.Notebooks Integrované poznámkové bloky ve službě Azure Machine Učení výpočetní instanci
Microsoft.ContainerService Pokud plánujete nasadit natrénované modely do azure Kubernetes Services.

Pokud plánujete používat klíč spravovaný zákazníkem se službou Azure Machine Učení, musí být zaregistrovaní následující poskytovatelé služeb:

Poskytovatel prostředků Proč je to potřeba
Microsoft.DocumentDB Instance Azure CosmosDB, která protokoluje metadata pro pracovní prostor.
Microsoft.Search Azure Search poskytuje možnosti indexování pro pracovní prostor.

Pokud plánujete používat spravovanou virtuální síť se službou Azure Machine Učení, musí být zaregistrovaný poskytovatel prostředků Microsoft.Network. Tento poskytovatel prostředků je používán pracovním prostorem při vytváření privátních koncových bodů pro spravovanou virtuální síť.

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

Další kroky