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.
Kapcsolódó erőforrások
Az Azure-ra vonatkozó Terraform-támogatásról további információt az Azure-ról szóló Terraform-dokumentációban talál.
A Terraform Azure-szolgáltató és a Machine Learning modul részleteiért lásd: Terraform Registry Azure Resource Manager-szolgáltató.
A Terraformra vonatkozó rövid útmutatósablon-példákat az alábbi Azure Terraform gyorsútmutató-sablonokban találja.
- 101: A gépi tanulási munkaterület és a számítás biztosítja az Azure Machine Learning használatának megkezdéséhez szükséges minimális erőforráskészletet.
- 201: A gépi tanulási munkaterület, a számítás és a hálózatelkülönítéshez szükséges hálózati összetevők készlete biztosítja az összes erőforrást, amely egy éles próbakörnyezet létrehozásához szükséges a nagy üzleti hatással rendelkező (HBI) adatok felhasználásához.
- 202: Hasonló a 201-hez, de lehetőség van meglévő hálózati összetevők behozására.
- 301: Machine Learning-munkaterület (biztonságos központ és küllő tűzfallal).
A hálózati konfigurációs lehetőségekről további információt az Azure Machine Learning-munkaterület virtuális hálózatokat használó erőforrásainak biztonságossá tételéről olvashat.
Az Azure Resource Manager sablonalapú központi telepítéseivel kapcsolatban lásd : Erőforrások üzembe helyezése Resource Manager-sablonokkal és Resource Manager REST API-val.
Az Azure Machine Learning-munkaterület naprakészen tartásáról a legújabb biztonsági frissítésekről a Biztonsági rések kezelése című témakörben olvashat.