Sdílet prostřednictvím


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

V tomto článku se dozvíte, jak vytvořit pracovní prostor Azure Machine Learning 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.

Konfigurační soubor Terraformu je dokument, který definuje prostředky potřebné pro nasazení. Konfigurace Terraformu může také zadat proměnné nasazení, které se použijí k zadání vstupních hodnot při použití konfigurace.

Požadavky

Omezení

  • Když vytvoříte nový pracovní prostor, můžete buď automaticky vytvořit služby potřebné pracovním prostorem, nebo použít 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ů služby Azure Machine Learning v předplatném, které tyto služby obsahuje. Pokud například vytvoříte pracovní prostor v předplatném A, který používá účet úložiště v předplatném B, musí být obor názvů Služby Azure Machine Learning zaregistrovaný v předplatném B, aby mohl pracovní prostor použít účet úložiště.

    Poskytovatel prostředků pro Azure Machine Learning je Microsoft.MachineLearningServices. Informace o tom, jestli je zaregistrovaná nebo zaregistrovaná, najdete v tématu Poskytovatelé a typy prostředků Azure.

    Důležité

    Tyto informace platí jenom pro prostředky poskytované během vytváření pracovního prostoru: účty Azure Storage, Azure Container Registry, Azure Key Vault a Application Insights.

  • Následující omezení platí pro instanci Application Insights vytvořenou během vytváření pracovního prostoru:

    Tip

    Při vytváření pracovního prostoru se vytvoří instance Aplikace Azure lication Insights. Pokud chcete, můžete instanci Application Insights po vytvoření clusteru odstranit. 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 instanci Application Insights vytvořenou pracovním prostorem, jediným způsobem, jak ji znovu vytvořit, je odstranit a znovu vytvořit pracovní prostor.

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

Vytvořte pracovní prostor.

Vytvořte soubor s názvem main.tf , který má následující kód.

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
}

Deklarujte zprostředkovatele Azure v souboru s názvem providers.tf , který má následující kód.

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

Konfigurace pracovního prostoru

Pokud chcete vytvořit pracovní prostor Azure Machine Learning, použijte jednu z následujících konfigurací Terraformu. Pracovní prostor Azure Machine Learning vyžaduje různé další služby jako závislosti. Šablona určuje tyto přidružené prostředky. 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.

Poznámka:

Některé prostředky v Azure vyžadují globálně jedinečné názvy. Před nasazením prostředků nezapomeňte nastavit name proměnné na jedinečné hodnoty.

Následující konfigurace vytvoří pracovní prostor s připojením k veřejné síti.

Definujte následující proměnné v souboru s názvem 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"
}

Definujte v souboru s názvem workspace.tf následující konfiguraci pracovního prostoru:

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

Vytvoření a použití plánu

Pokud chcete vytvořit pracovní prostor, spusťte následující kód:

terraform init

terraform plan \
        # -var <any of the variables set in variables.tf> \
          -out demo.tfplan

terraform apply "demo.tfplan"

Řešení chyb 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í 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 Learning:

Poskytovatel prostředků Proč je to potřeba
Microsoft.MachineLearningServices Vytvoření pracovního prostoru Azure Machine Learning
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 výpočetní instanci služby Azure Machine Learning
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 Learning, 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 Learning, 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ů.