Azure Machine Learning-munkaterületek kezelése a Terraform segítségével

Ebből a cikkből megtudhatja, hogyan hozhat létre és kezelhet Azure Machine Tanulás-munkaterületet Terraform-konfigurációs fájlok használatával. A Terraform sablonalapú konfigurációs fájljai lehetővé teszik az Azure-erőforrások ismételt és kiszámítható definiálását, létrehozását és konfigurálását. A Terraform nyomon követi az erőforrások állapotát, és képes megtisztítani és megsemmisíteni az erőforrásokat.

A Terraform-konfiguráció olyan dokumentum, amely meghatározza az üzembe helyezéshez szükséges erőforrásokat. Az üzembehelyezési változókat is megadhatja. A változók bemeneti értékeket adnak meg a konfiguráció használatakor.

Előfeltételek

Korlátozások

  • Új munkaterület létrehozásakor automatikusan létrehozhatja a munkaterülethez szükséges szolgáltatásokat, vagy használhatja a meglévő szolgáltatásokat. Ha a munkaterülettől eltérő Azure-előfizetésből származó meglévő szolgáltatásokat szeretne használni, regisztrálnia kell az Azure Machine Tanulás névterét a szolgáltatásokat tartalmazó előfizetésben. Ha például létrehoz egy munkaterületet az A előfizetésben, amely a B előfizetésből származó tárfiókot használ, az Azure Machine Tanulás névterét regisztrálni kell a B előfizetésben, mielőtt a tárfiókot használhassa a munkaterülettel.

    Az Azure Machine Tanulás erőforrás-szolgáltatója a Microsoft.Machine Tanulás Services. Az Azure-erőforrás-szolgáltatókról és -típusokról szóló cikkből megtudhatja, hogyan lehet regisztrálni, és hogyan lehet regisztrálni.

    Fontos

    Ez csak a munkaterület létrehozása során biztosított erőforrásokra vonatkozik; Azure Storage-fiókok, Azure Container Register, Azure Key Vault és alkalmazás Elemzések.

Tipp.

A munkaterület létrehozásakor létrejön egy Azure-alkalmazás Elemzések példány. Ha szeretné, törölheti az Alkalmazás Elemzések-példányt a fürt létrehozása után. A törlés korlátozza a munkaterületről gyűjtött információkat, és megnehezítheti a problémák elhárítását. Ha törli a munkaterület által létrehozott alkalmazáspéldányt Elemzések, a munkaterület törlése és újbóli létrehozása nélkül nem hozhatja létre újra.

Az alkalmazás Elemzések-példány használatáról további információt a Tanulás-webszolgáltatás-végpontok monitorozása és adatgyűjtése című témakörben talál.

Az Azure-szolgáltató deklarálása

Hozza létre az Azure-szolgáltatót deklaráló Terraform-konfigurációs fájlt:

  1. Hozzon létre egy új fájlt main.tf néven. Ha az Azure Cloud Shellt használja, használja a basht:

    code main.tf
    
  2. Másolja az alábbi kódot a szerkesztőbe:

    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. Mentse a fájlt (<Ctrl>S), és lépjen ki a szerkesztőből (<Ctrl>Q).

Munkaterület üzembe helyezése

Az alábbi Terraform-konfigurációk használhatók egy Azure Machine-Tanulás-munkaterület létrehozásához. Azure Machine Tanulás-munkaterület létrehozásakor függőségként számos más szolgáltatásra van szükség. A sablon a munkaterülethez társított erőforrásokat is megadja. Igényeitől függően választhatja azt a sablont, amely nyilvános vagy magánhálózati kapcsolattal hoz létre erőforrásokat.

Az Azure egyes erőforrásai globálisan egyedi neveket igényelnek. Mielőtt az erőforrásokat az alábbi sablonokkal telepíti, állítsa a name változót egyedi értékre.

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

Hibaelhárítás

Erőforrás-szolgáltatói hibák

Azure Machine Tanulás-munkaterület vagy a munkaterület által használt erőforrás létrehozásakor a következő üzenetekhez hasonló hibaüzenet jelenhet meg:

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

A legtöbb erőforrás-szolgáltató automatikusan regisztrálva van, de nem az összes. Ha ezt az üzenetet kapja, regisztrálnia kell az említett szolgáltatót.

Az alábbi táblázat az Azure Machine Tanulás által igényelt erőforrás-szolgáltatók listáját tartalmazza:

Erőforrás-szolgáltató Why it's needed
Microsoft.Machine Tanulás Szolgáltatások Az Azure Machine Tanulás-munkaterület létrehozása.
Microsoft.Storage A rendszer az Azure Storage-fiókot használja a munkaterület alapértelmezett tárolójaként.
Microsoft.ContainerRegistry Az Azure Container Registryt a munkaterület használja Docker-rendszerképek létrehozásához.
Microsoft.KeyVault Az Azure Key Vaultot a munkaterület titkos kulcsok tárolására használja.
Microsoft.Notebooks Integrált jegyzetfüzetek az Azure Machine Tanulás számítási példányon.
Microsoft.ContainerService Ha betanított modellek üzembe helyezését tervezi az Azure Kubernetes Servicesben.

Ha ügyfél által felügyelt kulcsot szeretne használni az Azure Machine Tanulás, akkor a következő szolgáltatókat kell regisztrálnia:

Erőforrás-szolgáltató Why it's needed
Microsoft.DocumentDB Azure CosmosDB-példány, amely naplózza a munkaterület metaadatait.
Microsoft.Search Az Azure Search indexelési képességeket biztosít a munkaterülethez.

Ha felügyelt virtuális hálózatot tervez használni az Azure Machine Tanulás, akkor a Microsoft.Network erőforrás-szolgáltatót regisztrálni kell. Ezt az erőforrás-szolgáltatót használja a munkaterület a felügyelt virtuális hálózat privát végpontjainak létrehozásakor.

Az erőforrás-szolgáltatók regisztrálásáról további információt az erőforrás-szolgáltató regisztrációjának hibáinak megoldása című témakörben talál.

Következő lépések