Verwalten von Azure Machine Learning-Arbeitsbereichen mithilfe der Azure CLI

GILT FÜRAzure CLI ML-Erweiterung v2 (aktuell)

In diesem Artikel erfahren Sie, wie Sie Azure Machine Learning-Arbeitsbereiche mit der Azure CLI erstellen und verwalten. Die Azure CLI bietet Befehle für die Verwaltung von Azure-Ressourcen und ist so konzipiert, dass Sie schnell mit Azure arbeiten können, wobei der Fokus auf der Automatisierung liegt. Die Erweiterung der CLI für maschinelles Lernen unterstützt Befehle für die Arbeit mit Azure Machine Learning-Ressourcen.

Sie können Arbeitsbereiche auch über das Azure-Portal und das Python SDK, Azure PowerShell oder die VS Code-Erweiterung verwalten.

Voraussetzungen

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.

Sichere CLI-Kommunikation

Einige der Azure CLI-Befehle kommunizieren über das Internet mit Azure Resource Manager. Diese Kommunikation wird durch HTTPS/TLS 1.2 geschützt.

Bei der Azure Machine Learning-CLI-Erweiterung v2 („ml“) kommunizieren alle Befehle mit Azure Resource Manager. Dies schließt operative Daten wie YAML-Parameter und Metadaten ein. Wenn Ihr Azure Machine Learning-Arbeitsbereich öffentlich ist (d. h. nicht hinter einem virtuellen Netzwerk), ist keine zusätzliche Konfiguration erforderlich. Die Kommunikation wird mit HTTPS/TLS 1.2 geschützt.

Wenn Ihr Azure Machine Learning-Arbeitsbereich einen privaten Endpunkt und ein virtuelles Netzwerk verwendet und Sie CLI v2 verwenden, wählen Sie eine der folgenden Konfigurationen aus:

Weitere Informationen zur CLI v2-Kommunikation finden Sie unter Installieren und Einrichten der CLI (v2).

Herstellen einer Verbindung zwischen der CLI und Ihrem Azure-Abonnement

Wichtig

Wenn Sie Azure Cloud Shell verwenden, können Sie diesen Abschnitt überspringen. Die Cloud Shell authentifiziert Sie automatisch mit dem Konto, mit dem Sie sich bei Ihrem Azure-Abonnement anmelden.

Ihnen stehen mehrere Möglichkeiten zur Verfügung, sich über die CLI bei Ihrem Azure-Abonnement zu authentifizieren. Am einfachsten ist die interaktive Authentifizierung mithilfe eines Browsers. Öffnen Sie zur interaktiven Authentifizierung eine Befehlszeile oder ein Terminal, und verwenden Sie den folgenden Befehl:

az login

Die CLI öffnet Ihren Standardbrowser, sofern sie dazu in der Lage ist, und lädt eine Anmeldeseite. Andernfalls müssen Sie einen Browser öffnen und die Anweisungen in der Befehlszeile befolgen. Die Anweisungen umfassen das Navigieren zu https://aka.ms/devicelogin und Eingeben eines Autorisierungscodes.

Tipp

Nach der Anmeldung sehen Sie eine Liste der mit Ihrem Azure-Konto verknüpften Abonnements. Die Abonnementinformation mit isDefault: true ist das derzeit aktivierte Abonnement für Azure CLI-Befehle. Dieses Abonnement muss dasselbe sein, das Ihren Azure Machine Learning-Arbeitsbereich enthält. Sie finden die Abonnement-ID im Azure-Portal, indem Sie zur Übersichtsseite Ihres Arbeitsbereichs navigieren.

Um ein anderes Abonnement auszuwählen, verwenden Sie den Befehl az account set -s <subscription name or ID>, und geben Sie den Namen oder die ID des Abonnements an, zu dem Sie wechseln möchten. Weitere Informationen zur Abonnementauswahl finden Sie unter Verwenden mehrerer Azure-Abonnements.

Andere Methoden zur Authentifizierung finden Sie unter Anmelden mit der Azure CLI.

Erstellen einer Ressourcengruppe

Der Azure Machine Learning-Arbeitsbereich muss innerhalb einer Ressourcengruppe erstellt werden. Sie können eine vorhandene Ressourcengruppe verwenden oder eine neue erstellen. Um eine neue Ressourcengruppe zu erstellen, verwenden Sie den folgenden Befehl. Ersetzen Sie <resource-group-name> durch den Namen, der für diese Ressourcengruppe verwendet werden soll. Ersetzen Sie <location> durch die Azure-Region, die für diese Ressourcengruppe verwendet werden soll:

Hinweis

Wählen Sie eine Region aus, in der Azure Machine Learning verfügbar ist. Weitere Informationen finden Sie unter Verfügbare Produkte nach Region.

az group create --name <resource-group-name> --location <location>

Die Antwort dieses Befehls ähnelt dem folgenden JSON-Code. Sie können die Ausgabewerte verwenden, um die erstellten Ressourcen zu lokalisieren oder sie als Eingabe für nachfolgende CLI-Schritte zur Automatisierung zu analysieren.

{
  "id": "/subscriptions/<subscription-GUID>/resourceGroups/<resourcegroupname>",
  "location": "<location>",
  "managedBy": null,
  "name": "<resource-group-name>",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "tags": null,
  "type": null
}

Weitere Informationen zum Arbeiten mit Ressourcengruppen finden Sie unter az group.

Erstellen eines Arbeitsbereichs

Wenn Sie einen Azure Machine Learning-Arbeitsbereich bereitstellen, werden verschiedene andere Dienste als abhängige zugeordnete Ressourcen benötigt. Wenn Sie die Befehlszeilenschnittstelle verwenden, um den Arbeitsbereich zu erstellen, kann die Befehlszeilenschnittstelle entweder neue zugehörige Ressourcen in Ihrem Namen erstellen oder Sie können vorhandene Ressourcen anfügen.

Wichtig

Wenn Sie Ihr eigenes Speicherkonto anfügen, stellen Sie sicher, dass es die folgenden Kriterien erfüllt:

  • Das Speicherkonto ist keinPremium-Konto (Premium_LRS oder Premium_GRS).
  • Sowohl Azure Blob- als auch Azure-Dateifunktionen sind aktiviert.
  • „Hierarchischer Namespace“ (ADLS Gen 2) ist deaktiviert. Diese Anforderungen gelten nur für das vom Arbeitsbereich verwendete standardmäßige Speicherkonto.

Wenn Sie die Azure-Container-Registrierung anhängen, müssen Sie das Administratorkonto aktiviert haben, bevor es mit einem Azure Machine Learning-Arbeitsbereich verwendet werden kann.

Um einen neuen Arbeitsbereich zu erstellen, in dem die Dienste automatisch erstellt werden, verwenden Sie den folgenden Befehl:

az ml workspace create -n <workspace-name> -g <resource-group-name>

Wichtig

Wenn Sie vorhandene Ressourcen anfügen, müssen Sie nicht alle angeben. Sie können eine oder mehrere angeben. Beispielsweise können Sie ein vorhandenes Speicherkonto angeben, und der Arbeitsbereich erstellt die sonstigen Ressourcen.

Die Ausgabe des Befehls zur Erstellung des Arbeitsbereichs sieht ähnlich aus wie der folgende JSON-Code. Sie können die Ausgabewerte verwenden, um die erstellten Ressourcen zu lokalisieren oder sie als Eingabe für nachfolgende CLI-Schritte zu analysieren.

{
  "applicationInsights": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.insights/components/<application-insight-name>",
  "containerRegistry": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.containerregistry/registries/<acr-name>",
  "creationTime": "2019-08-30T20:24:19.6984254+00:00",
  "description": "",
  "friendlyName": "<workspace-name>",
  "id": "/subscriptions/<service-GUID>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>",
  "identityPrincipalId": "<GUID>",
  "identityTenantId": "<GUID>",
  "identityType": "SystemAssigned",
  "keyVault": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.keyvault/vaults/<key-vault-name>",
  "location": "<location>",
  "name": "<workspace-name>",
  "resourceGroup": "<resource-group-name>",
  "storageAccount": "/subscriptions/<service-GUID>/resourcegroups/<resource-group-name>/providers/microsoft.storage/storageaccounts/<storage-account-name>",
  "type": "Microsoft.MachineLearningServices/workspaces",
  "workspaceid": "<GUID>"
}

Erweiterte Konfigurationen

Konfigurieren des Arbeitsbereichs für private Netzwerkkonnektivität

Abhängig von Ihrem Anwendungsfall und Ihren organisatorischen Anforderungen können Sie Azure Machine Learning mithilfe einer privaten Netzwerkkonnektivität konfigurieren. Sie können die Azure CLI verwenden, um einen Arbeitsbereich und einen Private Link-Endpunkt für die Arbeitsbereichsressource bereitzustellen. Weitere Informationen zur Verwendung eines privaten Endpunkts und eines virtuellen Netzwerks (VNet) mit Ihrem Arbeitsbereich finden Sie unter Übersicht über Isolierung und Datenschutz im virtuellen Netzwerk. Für komplexe Ressourcenkonfigurationen beachten Sie auch die vorlagenbasierten Bereitstellungsoptionen einschließlich Azure Resource Manager.

Wenn Sie eine private Verbindung verwenden, kann Ihr Arbeitsbereich nicht Azure Container Registry für die Erstellung von Docker-Images verwenden. Daher müssen Sie die Eigenschaft image_build_compute auf den Namen eines CPU-Compute-Clusters setzen, der für die Erstellung der Docker-Image-Umgebung verwendet werden soll. Mit der Eigenschaft public_network_access können Sie außerdem festlegen, ob der private Link-Arbeitsbereich über das Internet zugänglich sein soll.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-privatelink-prod
location: eastus
display_name: Private Link endpoint workspace-example
description: When using private link, you must set the image_build_compute property to a cluster name to use for Docker image environment building. You can also specify whether the workspace should be accessible over the internet.
image_build_compute: cpu-compute
public_network_access: Disabled
tags:
  purpose: demonstration
az ml workspace create -g <resource-group-name> --file privatelink.yml

Nachdem Sie den Arbeitsbereich erstellt haben, verwenden Sie die Azure Networking CLI-Befehle, um einen privaten Link-Endpunkt für den Arbeitsbereich zu erstellen.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <vnet-name> \
    --subnet <subnet-name> \
    --private-connection-resource-id "/subscriptions/<subscription>/resourceGroups/<resource-group-name>/providers/Microsoft.MachineLearningServices/workspaces/<workspace-name>" \
    --group-id amlworkspace \
    --connection-name workspace -l <location>

Um die privaten DNS-Zoneneinträge für den Arbeitsbereich zu erstellen, verwenden Sie die folgenden Befehle:

# Add privatelink.api.azureml.ms
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.api.azureml.ms'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.api.azureml.ms' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.api.azureml.ms' \
    --zone-name 'privatelink.api.azureml.ms'

# Add privatelink.notebooks.azure.net
az network private-dns zone create \
    -g <resource-group-name> \
    --name 'privatelink.notebooks.azure.net'

az network private-dns link vnet create \
    -g <resource-group-name> \
    --zone-name 'privatelink.notebooks.azure.net' \
    --name <link-name> \
    --virtual-network <vnet-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group add \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name myzonegroup \
    --private-dns-zone 'privatelink.notebooks.azure.net' \
    --zone-name 'privatelink.notebooks.azure.net'

Kundenseitig verwalteter Schlüssel und Arbeitsbereich mit starken geschäftlichen Auswirkungen

Standardmäßig werden Metadaten für den Arbeitsbereich auf einer Azure Cosmos DB-Instanz gespeichert, die von Microsoft verwaltet wird. Diese Daten werden mit von Microsoft verwalteten Schlüsseln verschlüsselt. Anstatt den von Microsoft verwalteten Schlüssel zu verwenden, können Sie auch Ihren eigenen Schlüssel bereitstellen. Dadurch wird ein zusätzlicher Satz von Ressourcen in Ihrem Azure-Abonnement erstellt, um Ihre Daten zu speichern.

Weitere Informationen über die Ressourcen, die erstellt werden, wenn Sie Ihren eigenen Schlüssel für die Verschlüsselung verwenden, finden Sie unter Datenverschlüsselung mit Azure Machine Learning.

Verwenden Sie den customer_managed_key-Parameter, der die Parameter key_vault und key_uri enthält, um die Ressourcen-ID und den URI des Schlüssels im Tresor anzugeben.

Um die von Microsoft in Ihrem Arbeitsbereich erfassten Daten einzuschränken, können Sie zusätzlich die hbi_workspace-Eigenschaft angeben.

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-cmkexample-prod
location: eastus
display_name: Customer managed key encryption-example
description: This configurations shows how to create a workspace that uses customer-managed keys for encryption.
customer_managed_key: 
  key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
  key_uri: https://<KEY_VAULT>.vault.azure.net/keys/<KEY_NAME>/<KEY_VERSION>
tags:
  purpose: demonstration

Dann können Sie auf diese Konfigurationsdatei als Teil des CLI-Befehls zur Erstellung des Arbeitsbereichs verweisen.

az ml workspace create -g <resource-group-name> --file cmk.yml

Hinweis

Autorisieren Sie die Machine Learning-App (in der Identitäts- und Zugriffsverwaltung) mit den Berechtigungen für Mitwirkende in Ihrem Abonnement, um die Datenverschlüsselung für weitere Ressourcen zu verwalten.

Hinweis

Azure Cosmos DB wird nicht verwendet, um Daten zur Modellleistung oder bei Experimenten oder Ihren Modellimplementierungen protokollierte Informationen zu speichern.

Wichtig

Die Auswahl von „starken geschäftlichen Auswirkungen“ kann nur beim Erstellen eines Arbeitsbereichs erfolgen. Diese Einstellung kann nach dem Erstellen des Arbeitsbereichs nicht mehr geändert werden.

Weitere Informationen zu kundenseitig verwalteten Schlüsseln und Arbeitsbereichen mit starken geschäftlichen Auswirkungen finden Sie unter Enterprise-Sicherheit für Machine Learning.

Verwenden der CLI zum Verwalten von Arbeitsbereichen

Abrufen von Informationen zum Arbeitsbereich

Um Informationen zu einem Arbeitsbereich zu erhalten, verwenden Sie den folgenden Befehl:

az ml workspace show -n <workspace-name> -g <resource-group-name>

Weitere Informationen finden Sie in der Dokumentation zu az ml workspace show.

Aktualisieren eines Arbeitsbereichs

Verwenden Sie den folgenden Befehl, um einen Arbeitsbereich zu aktualisieren:

az ml workspace update -n <workspace-name> -g <resource-group-name>

Weitere Informationen finden Sie in der Dokumentation zu az ml workspace update.

Synchronisieren von Schlüsseln für abhängige Ressourcen

Wenn Sie Zugriffsschlüssel für eine der Ressourcen ändern, die von Ihrem Arbeitsbereich verwendet werden, verwenden Sie den folgenden Befehl, um die neuen Schlüssel mit dem Arbeitsbereich zu synchronisieren. Wenn Sie erzwingen möchten, dass der Arbeitsbereich die neuen Schlüssel sofort synchronisiert, verwenden Sie den folgenden Befehl:

az ml workspace sync-keys -n <workspace-name> -g <resource-group-name>

Weitere Informationen zum Ändern von Schlüsseln finden Sie unter Erneutes Generieren von Speicherzugriffsschlüsseln.

Weitere Informationen über den Befehl „sync-keys“ finden Sie unter az ml workspace sync-keys.

Löschen eines Arbeitsbereichs

Warnung

Wenn vorläufiges Löschen für den Arbeitsbereich aktiviert ist, kann er nach dem Löschen wiederhergestellt werden. Wenn vorläufiges Löschen nicht aktiviert ist oder Sie die Option zum endgültigen Löschen des Arbeitsbereichs auswählen, kann er nicht wiederhergestellt werden. Weitere Informationen finden Sie unter Wiederherstellen eines gelöschten Arbeitsbereichs.

Um einen Arbeitsbereich zu löschen, wenn er nicht mehr benötigt wird, verwenden Sie den folgenden Befehl:

az ml workspace delete -n <workspace-name> -g <resource-group-name>

Wichtig

Beim Löschen eines Arbeitsbereichs werden Application Insights, Speicherkonto, Schlüsseltresor oder Containerregistrierung, die vom Arbeitsbereich verwendet werden, nicht gelöscht.

Sie können auch die Ressourcengruppe löschen, wodurch der Arbeitsbereich und alle anderen Azure-Ressourcen in der Ressourcengruppe gelöscht werden. Um die Ressourcengruppe zu löschen, verwenden Sie folgenden Befehl:

az group delete -g <resource-group-name>

Weitere Informationen finden Sie in der Dokumentation zu az ml workspace delete.

Tipp

Das Standardverhalten für Azure Machine Learning besteht darin, den Arbeitsbereich vorläufig zu löschen. Das bedeutet, dass der Arbeitsbereich nicht sofort gelöscht, sondern Zur Löschung gekennzeichnet wird. Weitere Informationen finden Sie unter Vorläufiges Löschen.

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.

Verschieben des Arbeitsbereichs

Warnung

Das Verschieben des Azure Machine Learning-Arbeitsbereichs in ein anderes Abonnement oder das Verschieben des besitzenden Abonnements in einen neuen Mandanten wird nicht unterstützt. Andernfalls können Fehler auftreten.

Löschen der Azure Container Registry

Der Azure Machine Learning-Arbeitsbereich verwendet für einige Operationen die Azure Container Registry (ACR). Es wird automatisch eine ACR-Instanz erstellt, wenn erstmals eine erforderlich ist.

Warnung

Nachdem eine Azure Container Registry für einen Arbeitsbereich erstellt wurde, dürfen Sie diese nicht mehr löschen. Dadurch wird Ihr Azure Machine Learning-Arbeitsbereich beschädigt.

Nächste Schritte

Weitere Informationen zur Azure CLI-Erweiterung für maschinelles Lernen finden Sie in der Dokumentation zu az ml.

Informationen zum Ermitteln von Problemen mit Ihrem Arbeitsbereich finden Sie unter Verwenden der Arbeitsbereichsdiagnose.

Informationen zum Verschieben eines Arbeitsbereichs in ein neues Azure-Abonnement finden Sie unter Verschieben eines Arbeitsbereichs.

Informationen dazu, wie Sie Azure Machine Learning mit den aktuellen Sicherheitsupdates auf dem neuesten Stand halten, finden Sie unter Verwaltung von Sicherheitsrisiken.