Megosztás a következőn keresztül:


Azure Machine Learning-munkaterületek kezelése a Terraform használatával

Ebben a cikkben megtudhatja, hogyan hozhat létre Azure Machine Learning-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 megtisztíthatja és megsemmisítheti az erőforrásokat.

A Terraform konfigurációs fájl olyan dokumentum, amely meghatározza az üzembe helyezéshez szükséges erőforrásokat. A Terraform-konfiguráció olyan üzembehelyezési változókat is megadhat, amelyeket a konfiguráció alkalmazásakor bemeneti értékek megadására használhat.

Előfeltételek

  • Azure-előfizetés az Azure Machine Learning ingyenes vagy fizetős verziójával. Ha még nincs Azure-előfizetése, kezdés előtt hozzon létre egy ingyenes fiókot.
  • A Terraform telepítése és konfigurálása a rövid útmutató utasításainak megfelelően történik: A Terraform telepítése és konfigurálása.

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 Learning névterét a szolgáltatásokat tartalmazó előfizetésben. Ha például olyan munkaterületet hoz létre az A előfizetésben, amely a B előfizetésben használ tárfiókot, az Azure Machine Learning-névteret regisztrálni kell a B előfizetésben, mielőtt a munkaterület használhatja a tárfiókot.

    Az Azure Machine Learning erőforrás-szolgáltatója a Microsoft.MachineLearningServices. Az Azure-erőforrás-szolgáltatók és -típusok című témakörben tájékozódhat arról, hogy regisztrálták-e vagy regisztrálták-e.

    Fontos

    Ezek az információk csak a munkaterület létrehozása során biztosított erőforrásokra vonatkoznak: Azure Storage-fiókok, Azure Container Registry, Azure Key Vault és Application Insights.

  • A következő korlátozás a munkaterület létrehozásakor létrehozott Application Insights-példányra vonatkozik:

    Tipp.

    A munkaterület létrehozásakor létrejön egy Azure-alkalmazás Insights-példány. Ha szeretné, törölheti az Application Insights-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 Application Insights-példányt, az egyetlen lehetőség a munkaterület törlésére és újbóli létrehozására.

    Az Application Insights-példány használatáról további információt a Machine Learning webszolgáltatás-végpontjaiból származó adatok figyelése és gyűjtése című témakörben talál.

Hozza létre a munkaterületet

Hozzon létre egy main.tf nevű fájlt, amely a következő kóddal rendelkezik.

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
}

Deklarálja az Azure-szolgáltatót egy providers.tf nevű fájlban, amely az alábbi kóddal rendelkezik.

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

A Munkaterület konfigurálása

Azure Machine Learning-munkaterület létrehozásához használja az alábbi Terraform-konfigurációk egyikét. Az Azure Machine Learning-munkaterületek függőségként különböző egyéb szolgáltatásokat igényelnek. A sablon ezeket a társított erőforrásokat határozza meg. Az igényeitől függően választhat, hogy olyan sablont használ, amely nyilvános vagy magánhálózati kapcsolattal hoz létre erőforrásokat.

Feljegyzés

Az Azure egyes erőforrásai globálisan egyedi neveket igényelnek. Az erőforrások üzembe helyezése előtt mindenképpen állítsa be name a változókat egyedi értékekre.

Az alábbi konfiguráció nyilvános hálózati kapcsolattal rendelkező munkaterületet hoz létre.

Definiálja a következő változókat egy variables.tf nevű fájlban.

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

Adja meg a következő munkaterület-konfigurációt egy workspace.tf nevű fájlban:

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

A terv létrehozása és alkalmazása

A munkaterület létrehozásához futtassa a következő kódot:

terraform init

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

terraform apply "demo.tfplan"

Erőforrás-szolgáltatói hibák elhárítása

Azure Machine Learning-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 Learning által igényelt erőforrás-szolgáltatók listáját tartalmazza:

Erőforrás-szolgáltató Miért van rá szükség?
Microsoft.MachineLearningServices Az Azure Machine Learning-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 Learning számítási példányán.
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 Learningben, akkor a következő szolgáltatókat kell regisztrálnia:

Erőforrás-szolgáltató Miért van rá szükség?
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 szeretne használni az Azure Machine Learning használatával, 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.