Verwalten von Azure Machine Learning-Arbeitsbereichen mithilfe von Terraform
In diesem Artikel erfahren Sie, wie Sie einen Azure Machine Learning-Arbeitsbereich mithilfe von Terraform-Konfigurationsdateien erstellen und verwalten. Die vorlagenbasierten Konfigurationsdateien von Terraform ermöglichen es Ihnen, Azure-Ressourcen in wiederholbarer und vorhersagbarer Weise zu definieren, zu erstellen und zu konfigurieren. Terraform verfolgt den Ressourcenzustand nach und kann Ressourcen bereinigen und zerstören.
Eine Terraform-Konfiguration ist ein Dokument, das die Ressourcen definiert, die für eine Bereitstellung benötigt werden. Sie kann auch Variablen für die Bereitstellung angeben. Variablen werden verwendet, um Eingabewerte bereitzustellen, wenn die Konfiguration verwendet wird.
Voraussetzungen
- Ein Azure-Abonnement. Wenn Sie keins besitzen, probieren Sie die kostenlose oder kostenpflichtige Version von Azure Machine Learning aus.
- Eine installierte Version der Azure CLI.
- Konfigurieren von Terraform: Befolgen Sie die Anweisungen in diesem Artikel und im Artikel Terraform und Konfigurieren des Zugriffs auf Azure.
Einschränkungen
Wenn Sie einen neuen Arbeitsbereich erstellen, können Sie die vom Arbeitsbereich benötigten Dienste automatisch erstellen oder vorhandene Dienste verwenden. Wenn Sie vorhandene Dienste aus einem anderen Azure-Abonnement als dem des Arbeitsbereichs verwenden möchten, müssen Sie den Azure Machine Learning-Namespace in dem Abonnement mit diesen Dienst registrieren. Wenn Sie z. B. einen Arbeitsbereich in Abonnement A erstellen, der ein Speicherkonto aus Abonnement B verwendet, muss der Azure Machine Learning-Namespace in Abonnement B registriert werden, damit Sie das Speicherkonto mit dem Arbeitsbereich verwenden können.
Der Ressourcenanbieter für Machine Learning ist Microsoft.MachineLearningServices. Informationen zum Überprüfen und Durchführen der Registrierung finden Sie im Artikel Azure-Ressourcenanbieter und -typen.
Wichtig
Dies betrifft für Ressourcen, die beim Erstellen des Arbeitsbereichs bereitgestellt werden, also Azure Storage-Konten, Azure Container Registry, Azure Key Vault und Application Insights.
Tipp
Eine Azure Application Insights-Instanz wird erstellt, wenn Sie den Arbeitsbereich erstellen. Wenn Sie möchten, können Sie die Application Insights-Instanz nach der Clustererstellung löschen. Durch das Löschen werden die aus dem Arbeitsbereich gesammelten Informationen eingeschränkt, und die Problembehandlung ist möglicherweise schwieriger. Wenn Sie die vom Arbeitsbereich erstellte Application Insights-Instanz löschen, können Sie sie nicht neu erstellen, ohne den Arbeitsbereich zu löschen und neu zu erstellen.
Weitere Informationen zur Verwendung dieser Application Insights-Instanz finden Sie unter Überwachen und Erfassen von Daten von ML-Webdienst-Endpunkten.
Deklarieren des Azure-Anbieters
Erstellen Sie die Terraform-Konfigurationsdatei, die den Azure-Anbieter deklariert:
Erstellen Sie eine neue Datei mit dem Namen
main.tf
. Wenn Sie mit Azure Cloud Shell arbeiten, verwenden Sie Bash:code main.tf
Fügen Sie den folgenden Code in den Editor ein:
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 }
Speichern Sie die Datei (<STRG+S>), und beenden Sie den Editor (STRG+Q<)>.
Bereitstellen eines Arbeitsbereichs
Die folgenden Terraform-Konfigurationen können verwendet werden, um einen Azure Machine Learning-Arbeitsbereich zu erstellen. Wenn Sie einen Azure Machine Learning-Arbeitsbereich erstellen, werden verschiedene andere Dienste als Abhängigkeiten benötigt. Die Vorlage gibt auch diese zugeordneten Ressourcen für den Arbeitsbereich an. Je nach Bedarf können Sie die Vorlage verwenden, die Ressourcen mit öffentlicher oder privater Netzwerkkonnektivität erstellt.
Einige Ressourcen in Azure erfordern global eindeutige Namen. Bevor Sie Ihre Ressourcen mithilfe der folgenden Vorlagen bereitstellen, legen Sie die name
-Variable auf einen eindeutigen Wert fest.
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"
}
}
Problembehandlung
Fehler der Ressourcenanbieter
Wenn Sie einen Azure Machine Learning-Arbeitsbereich oder eine vom Arbeitsbereich verwendete Ressource erstellen, erhalten Sie möglicherweise eine Fehlermeldung ähnlich der folgenden:
No registered resource provider found for location {location}
The subscription is not registered to use namespace {resource-provider-namespace}
Die meisten Ressourcenanbieter werden automatisch registriert, aber nicht alle. Wenn Sie diese Meldung erhalten, müssen Sie den erwähnten Anbieter registrieren.
Die folgende Tabelle enthält eine Liste der Ressourcenanbieter, die für Azure Machine Learning erforderlich sind:
Ressourcenanbieter | Zweck |
---|---|
Microsoft.MachineLearningServices | Erstellen des Azure Machine Learning-Arbeitsbereichs |
Microsoft.Storage | Das Azure Storage-Konto wird als Standarddatenspeicher für den Arbeitsbereich verwendet. |
Microsoft.ContainerRegistry | Azure Container Registry wird vom Arbeitsbereich zum Erstellen von Docker-Images verwendet. |
Microsoft.KeyVault | Azure Key Vault wird vom Arbeitsbereich zum Speichern von Geheimnissen verwendet. |
Microsoft.Notebooks | Integrierte Notebooks in einer Azure Machine Learning-Compute-Instanz |
Microsoft.ContainerService | Wenn Sie die Bereitstellung trainierter Modelle in Azure Kubernetes Services planen |
Wenn Sie einen kundenseitig verwalteten Schlüssel mit Azure Machine Learning verwenden möchten, müssen die folgenden Dienstanbieter registriert werden:
Ressourcenanbieter | Zweck |
---|---|
Microsoft.DocumentDB | Azure CosmosDB-Instanz, die Metadaten für den Arbeitsbereich protokolliert |
Microsoft.Search | Azure Search bietet Indizierungsfunktionen für den Arbeitsbereich. |
Wenn Sie ein verwaltetes virtuelles Netzwerk mit Azure Machine Learning verwenden möchten, muss der Microsoft.Network Ressourcenanbieter registriert werden. Dieser Ressourcenanbieter wird vom Arbeitsbereich beim Erstellen privater Endpunkte für das verwaltete virtuelle Netzwerk verwendet.
Weitere Informationen zum Registrieren eines Ressourcenanbieters finden Sie unter Beheben von Fehlern bei der Ressourcenanbieterregistrierung.
Nächste Schritte
Weitere Informationen zur Unterstützung von Terraform in Azure finden Sie in der Dokumentation zu Terraform in Azure.
Ausführliche Informationen zum Azure-Anbieter für Terraform finden Sie unter Terraform-Registrierung: Azure Resource Manager-Anbieter.
Beispiele für Schnellstartvorlagen für Terraform finden Sie unter Azure-Terraform-Schnellstartvorlagen:
- 101: Machine Learning-Arbeitsbereich und -Computeressourcen: Die mindestens erforderlichen Ressourcen für die ersten Schritte mit Azure Machine Learning.
- 201: Machine Learning-Arbeitsbereich, Compute und ein Satz von Netzwerkkomponenten für die Netzwerkisolation – Alle Ressourcen, die erforderlich sind, um eine Produktionspilotumgebung zu erstellen, die mit HBI-Daten verwendet werden kann.
- 202: Ähnlich wie 201, jedoch mit der Möglichkeit, vorhandene Netzwerkkomponenten einzubringen..
- 301: Machine Learning Arbeitsbereich (Secure Hub und Spoke mit Firewall).
Weitere Informationen zu Netzwerkkonfigurationsoptionen finden Sie unter Schützen von Azure Machine Learning-Arbeitsbereichsressourcen mit virtuellen Netzwerken (VNets).
Alternative, auf Azure Resource Manager-Vorlagen basierende Bereitstellungen finden Sie unter Bereitstellen von Ressourcen mit Resource Manager-Vorlagen und Resource Manager-REST-API.
Informationen dazu, wie Sie Azure Machine Learning mit den aktuellen Sicherheitsupdates auf dem neuesten Stand halten, finden Sie unter Verwaltung von Sicherheitsrisiken.