Verwalten von Azure Machine Learning-Arbeitsbereichen mit dem Python SDK (v1)

GILT FÜR:Python SDK azureml v1

In diesem Artikel erfahren Sie, wie Sie Azure Machine Learning-Arbeitsbereiche für Azure Machine Learning mit dem SDK für Python erstellen, anzeigen und löschen.

Wenn sich Ihr Bedarf ändert oder die Anforderungen an die Automatisierung zunehmen, können Sie Arbeitsbereiche auch mithilfe der CLI oder über 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.

  • Beim Erstellen eines Arbeitsbereichs wird standardmäßig auch eine Azure Container Registry-Instanz (ACR) erstellt. Da ACR derzeit keine Unicode-Zeichen in Ressourcengruppennamen unterstützt, verwenden Sie eine Ressourcengruppe ohne diese Zeichen.

  • Azure Machine Learning unterstützt keinen hierarchischen Namespace (Azure Data Lake Storage Gen2-Feature) für das Standardspeicherkonto des Arbeitsbereichs.

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.

Erstellen eines Arbeitsbereichs

Sie können einen Arbeitsbereich direkt in Azure Machine Learning Studio erstellen, wobei nur begrenzte Optionen zur Verfügung stehen. Oder verwenden Sie eine der folgenden Methoden, um mehr Kontrolle über die Optionen zu erhalten.

  • Standardspezifikation Standardmäßig werden abhängige Ressourcen und die Ressourcengruppe automatisch erstellt. Dieser Code erstellt einen Arbeitsbereich namens myworkspace und eine Ressourcengruppe namens myresourcegroup in eastus2.

    GILT FÜR:Python SDK azureml v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

    Legen Sie create_resource_group auf „False“ fest, wenn Sie über eine vorhandene Azure-Ressourcengruppe verfügen, die Sie für den Arbeitsbereich verwenden möchten.

  • Mehrere Mandanten Wenn Sie über mehrere Konten verfügen, fügen Sie die Mandanten-ID der Azure Active Directory-Instanz hinzu, die Sie verwenden möchten. Ihre Mandanten-ID finden Sie im Azure-Portal unter Azure Active Directory, Externe Identitäten.

    GILT FÜR:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Sovereign Cloud Sie benötigen zusätzlichen Code, um sich bei Azure zu authentifizieren, wenn Sie in einer Sovereign Cloud arbeiten.

    GILT FÜR:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Verwenden vorhandener Azure-Ressourcen Sie können auch einen Arbeitsbereich erstellen, der vorhandene Azure-Ressourcen mit dem Azure-Ressourcen-ID-Format verwendet. Die bestimmten Azure-Ressourcen-IDs finden Sie im Azure-Portal oder mit dem SDK. In diesem Beispiel wird davon ausgegangen, dass die Ressourcengruppe, das Speicherkonto, der Schlüsseltresor, App Insights und die Containerregistrierung bereits vorhanden sind.

    GILT FÜR:Python SDK azureml v1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

Weitere Informationen finden Sie unter SDK-Referenz für den Arbeitsbereich.

Wenn Sie Probleme beim Zugriff auf Ihr Abonnement haben, finden Sie weitere Informationen unter Einrichten der Authentifizierung für Azure Machine Learning-Ressourcen und -Workflows sowie im Notebook Authentifizierung in Azure Machine Learning.

Netzwerk

Wichtig

Weitere Informationen zur Verwendung eines privaten Endpunkts und eines virtuellen Netzwerks mit Ihrem Arbeitsbereich finden Sie unter Netzwerkisolation und Datenschutz.

Das Azure Machine Learning Python SDK bietet die Klasse PrivateEndpointConfig, die mit Workspace.create() verwendet werden kann, um einen Arbeitsbereich mit einem privaten Endpunkt zu erstellen. Diese Klasse erfordert ein vorhandenes virtuelles Netzwerk.

Erweitert

Standardmäßig werden Metadaten für den Arbeitsbereich in einer Azure Cosmos DB-Instanz gespeichert, die von Microsoft verwaltet wird. Diese Daten werden mit von Microsoft verwalteten Schlüsseln verschlüsselt.

Wählen Sie Arbeitsbereich mit hohen geschäftlichen Auswirkungen im Portal aus oder legen Sie hbi_workspace=true in Python fest, um die von Microsoft in Ihrem Arbeitsbereich gesammelten Daten zu beschränken. Weitere Informationen zu dieser Einstellung finden Sie unter Verschlüsselung ruhender Daten.

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.

Verwenden eines eigenen Datenverschlüsselungsschlüssels

Sie können einen eigenen Schlüssel für die Datenverschlüsselung bereitstellen. Damit wird die Azure Cosmos DB-Instanz erstellt, die Metadaten in Ihrem Azure-Abonnement speichert. Weitere Informationen finden Sie unter Kundenseitig verwaltete Schlüssel für Azure Machine Learning.

Führen Sie die folgenden Schritte aus, um Ihren eigenen Schlüssel bereitzustellen:

Wichtig

Vor diesen Schritten müssen Sie zunächst die folgenden Aktionen ausführen:

Befolgen Sie die Schritte in Konfigurieren von kundenseitig verwalteten Schlüsseln, um:

  • Registrieren des Azure Cosmos DB-Anbieters
  • Erstellen und Konfigurieren einer Azure Key Vault-Instanz
  • Generieren eines Schlüssels

Verwenden Sie cmk_keyvault und resource_cmk_uri, um den kundenseitig verwalteten Schlüssel anzugeben.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

Herunterladen einer Konfigurationsdatei

Wenn Sie eine Compute-Instanz in Ihrem Arbeitsbereich verwenden, um Ihren Code auszuführen, überspringen Sie diesen Schritt. Die Compute-Instanz erstellt und speichert eine Kopie dieser Datei für Sie.

Wenn Sie planen, in Ihrer lokalen Umgebung Code zu verwenden, der auf diesen Arbeitsbereich (ws) verweist, schreiben Sie die Konfigurationsdatei:

GILT FÜR:Python SDK azureml v1

ws.write_config()

Legen Sie die Datei in der Verzeichnisstruktur mit Ihren Python-Skripts oder Jupyter Notebooks ab. Sie kann sich im selben Verzeichnis, in einem Unterverzeichnis namens .azureml oder in einem übergeordneten Verzeichnis befinden. Bei der Erstellung einer Compute-Instanz wird diese Datei automatisch dem richtigen Verzeichnis auf dem virtuellen Computer hinzugefügt.

Stellen Sie eine Verbindung mit einem Arbeitsbereich her.

In Ihrem Python-Code erstellen Sie ein Arbeitsbereichsobjekt, um eine Verbindung zu Ihrem Arbeitsbereich herzustellen. Dieser Code liest den Inhalt der Konfigurationsdatei, um Ihren Arbeitsbereich zu finden. Sie werden aufgefordert, sich anzumelden, falls Sie nicht bereits authentifiziert sind.

GILT FÜR:Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Mehrere Mandanten Wenn Sie über mehrere Konten verfügen, fügen Sie die Mandanten-ID der Azure Active Directory-Instanz hinzu, die Sie verwenden möchten. Ihre Mandanten-ID finden Sie im Azure-Portal unter Azure Active Directory, Externe Identitäten.

    GILT FÜR:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Sovereign Cloud Sie benötigen zusätzlichen Code, um sich bei Azure zu authentifizieren, wenn Sie in einer Sovereign Cloud arbeiten.

    GILT FÜR:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

Wenn Sie Probleme beim Zugriff auf Ihr Abonnement haben, finden Sie weitere Informationen unter Einrichten der Authentifizierung für Azure Machine Learning-Ressourcen und -Workflows sowie im Notebook Authentifizierung in Azure Machine Learning.

Suchen nach einem Arbeitsbereich

Zeigen Sie eine Liste mit allen Arbeitsbereichen an, die Sie verwenden können.

Ihre Abonnements finden Sie auf der Seite Abonnements im Azure-Portal. Kopieren Sie die ID, und verwenden Sie sie im nachfolgenden Code, um alle für dieses Abonnement verfügbaren Arbeitsbereiche anzuzeigen.

GILT FÜR:Python SDK azureml v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

Die Methode „Workspace.list(..)“ gibt nicht das vollständige Arbeitsbereichsobjekt zurück. Es enthält nur grundlegende Informationen zu vorhandenen Arbeitsbereichen im Abonnement. Verwenden Sie „Workspace.get(..)“, um ein vollständiges Objekt für einen bestimmten Arbeitsbereich abzurufen.

Löschen eines Arbeitsbereichs

Wenn Sie einen Arbeitsbereich nicht mehr benötigen, löschen Sie ihn.

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.

Wenn Sie Ihren Arbeitsbereich versehentlich gelöscht haben, können Sie Ihre Notebooks möglicherweise trotzdem abrufen. Weitere Informationen finden Sie unter Failover für Business Continuity & Disaster Recovery.

Löschen des Arbeitsbereichs ws:

GILT FÜR:Python SDK azureml v1

ws.delete(delete_dependent_resources=False, no_wait=False)

Die Standardaktion ist nicht das Löschen von Ressourcen, die mit dem Arbeitsbereich verbunden sind (also Containerregistrierung, Speicherkonto, Schlüsseltresor und Application Insights). Legen Sie delete_dependent_resources auf „True“ fest, um auch diese Ressourcen zu löschen.

Bereinigen von Ressourcen

Wichtig

Die von Ihnen erstellten Ressourcen können ggf. auch in anderen Azure Machine Learning-Tutorials und -Anleitungen verwendet werden.

Wenn Sie die erstellten Ressourcen nicht mehr benötigen, löschen Sie diese, damit Ihnen keine Kosten entstehen:

  1. Wählen Sie ganz links im Azure-Portal Ressourcengruppen aus.

  2. Wählen Sie in der Liste die Ressourcengruppe aus, die Sie erstellt haben.

  3. Wählen Sie die Option Ressourcengruppe löschen.

    Screenshot der Auswahlmöglichkeiten zum Löschen einer Ressourcengruppe im Azure-Portal.

  4. Geben Sie den Ressourcengruppennamen ein. Wählen Sie anschließend die Option Löschen.

Problembehandlung

  • Unterstützte Browser in Azure Machine Learning Studio: Es wird empfohlen, den neuesten Browser zu verwenden, der mit Ihrem Betriebssystem kompatibel ist. Die folgenden Browser werden unterstützt:

    • Microsoft Edge (Die neueste Version von Microsoft Edge. Keine ältere Microsoft Edge-Version.)
    • Safari (neueste Version, nur auf Mac)
    • Chrome (neueste Version)
    • Firefox (neueste Version)
  • Azure-Portal:

    • Wenn Sie direkt über einen Freigabelink aus dem SDK oder dem Azure-Portal zu Ihrem Arbeitsbereich gelangen, können Sie die standardmäßige Übersichtsseite mit Abonnementinformationen in der Erweiterung nicht anzeigen. In diesem Szenario können Sie auch nicht zu einem anderen Arbeitsbereich wechseln. Um einen anderen Arbeitsbereich anzuzeigen, wechseln Sie direkt zu Azure Machine Learning-Studio und suchen nach dem Namen des Arbeitsbereichs.
    • Alle Assets (Daten, Experimente, Computes usw.) sind nur in Azure Machine Learning Studio verfügbar. Sie sind nicht über das Azure-Portal verfügbar.
    • Wenn Sie versuchen, eine Vorlage für einen Arbeitsbereich aus dem Azure-Portal zu exportieren, wird möglicherweise ein Fehler ähnlich dem folgenden zurückgegeben: Could not get resource of the type <type>. Resources of this type will not be exported. Verwenden Sie als Problemumgehung eine der unter https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices bereitgestellten Vorlagen als Grundlage für Ihre Vorlage.

Arbeitsbereichsdiagnose

Sie können die Diagnose für Ihren Arbeitsbereich über Azure Machine Learning Studio oder das Python SDK ausführen. Nach der Diagnose wird eine Liste aller erkannten Probleme zurückgegeben. Diese Liste enthält Links zu möglichen Lösungen. Weitere Informationen finden Sie unter Verwenden der Arbeitsbereichsdiagnose.

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/NotebookProxies 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/databaseAccounts Azure CosmosDB-Instanz, die Metadaten für den Arbeitsbereich protokolliert
Microsoft.Search/searchServices Azure Search bietet Indizierungsfunktionen für den Arbeitsbereich.

Weitere Informationen zum Registrieren eines Ressourcenanbieters finden Sie unter Beheben von Fehlern bei der Ressourcenanbieterregistrierung.

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

Sobald Sie über einen Arbeitsbereich verfügen, erfahren Sie, wie ein Modell trainiert und bereitgestellt wird.

Weitere Informationen zum Planen eines Arbeitsbereichs für die Anforderungen Ihrer Organisation finden Sie unter Organisieren und Einrichten von Azure Machine Learning.

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