Erstellen, Ausführen und Löschen von Azure Machine Learning-Ressourcen mit REST

Es gibt verschiedene Optionen für die Verwaltung Ihrer Azure Machine Learning-Ressourcen. Sie können das -Portal, die Befehlszeilenschnittstelle (CLI) oder das Python SDK verwenden. Sie können auch die REST-API verwenden. Die REST-API verwendet HTTP-Verben in einer Standardmethode zum Erstellen, Abrufen, Aktualisieren und Löschen von Ressourcen. Die REST-API funktioniert mit jeder Sprache oder jedem Tool, die bzw. das HTTP-Anforderungen ausführen kann. Durch die unkomplizierte Struktur von REST sind diese APIs häufig eine gute Wahl in Skriptumgebungen sowie für MLOps-Automatisierung.

In diesem Artikel werden folgende Vorgehensweisen behandelt:

  • Abrufen eines Autorisierungstokens
  • Erstellen einer ordnungsgemäß formatierten REST-Anforderung mithilfe der Dienstprinzipalauthentifizierung
  • Verwenden von GET-Anforderungen zum Abrufen von Informationen zu den hierarchischen Ressourcen von Azure Machine Learning
  • Verwenden von PUT- und POST-Anforderungen zum Erstellen und Ändern von Ressourcen
  • Verwenden von PUT-Anforderungen zum Erstellen von Azure Machine Learning-Arbeitsbereichen
  • Verwenden von DELETE-Anforderungen zum Bereinigen von Ressourcen

Voraussetzungen

Abrufen eines Tokens für die Dienstprinzipalauthentifizierung

Administrative REST-Anforderungen werden mit einem impliziten OAuth2-Flow authentifiziert. Dieser Authentifizierungsflow verwendet ein Token, das vom Dienstprinzipal Ihres Abonnements bereitgestellt wird. Um dieses Token abzurufen, benötigen Sie Folgendes:

  • Ihre Mandanten-ID (identifiziert die Organisation, zu der Ihr Abonnement gehört)
  • Ihre Client-ID (die dem erstellten Token zugeordnet wird)
  • Ihr geheimer Clientschlüssel (den Sie schützen sollten)

Sie sollten diese Werte von der Antwort auf die Erstellung Ihres Dienstprinzipals erhalten. Das Abrufen dieser Werte wird in Einrichten der Authentifizierung für Azure Machine Learning-Ressourcen und -Workflows erläutert. Wenn Sie das Abonnement Ihres Unternehmens verwenden, verfügen Sie möglicherweise nicht über die Berechtigung zum Erstellen eines Dienstprinzipals. In diesem Fall sollten Sie ein kostenloses oder kostenpflichtiges persönliches Abonnement verwenden.

So rufen Sie ein Token ab:

  1. Öffnen Sie ein Terminalfenster.
  2. Geben Sie den folgenden Code in der Befehlszeile ein:
  3. Ersetzen Sie <YOUR-TENANT-ID>, <YOUR-CLIENT-ID>, und <YOUR-CLIENT-SECRET> durch Ihre eigenen Werte. In diesem Artikel sind Zeichenfolgen, die von spitzen Klammern umgeben sind, Variablen, die Sie durch Ihre entsprechenden eigenen Werte ersetzen müssen.
  4. Führen Sie den folgenden Befehl aus:
curl -X POST https://login.microsoftonline.com/<YOUR-TENANT-ID>/oauth2/token \
-d "grant_type=client_credentials&resource=https%3A%2F%2Fmanagement.azure.com%2F&client_id=<YOUR-CLIENT-ID>&client_secret=<YOUR-CLIENT-SECRET>" \

Die Antwort sollte ein Zugriffstoken bereitstellen, das eine Stunde lang gültig ist:

{
    "token_type": "Bearer",
    "expires_in": "3599",
    "ext_expires_in": "3599",
    "expires_on": "1578523094",
    "not_before": "1578519194",
    "resource": "https://management.azure.com/",
    "access_token": "YOUR-ACCESS-TOKEN"
}

Notieren Sie sich das Token, da Sie es verwenden, um alle administrativen Anforderungen zu authentifizieren. Hierzu legen Sie einen Autorisierungsheader in allen Anforderungen fest:

curl -h "Authorization:Bearer <YOUR-ACCESS-TOKEN>" ...more args...

Hinweis

Der Wert beginnt mit der Zeichenfolge „Bearer“, einschließlich eines einzelnen Leerzeichens, bevor Sie das Token hinzufügen.

Abrufen einer Liste aller Ressourcengruppen, die Ihrem Abonnement zugeordnet sind

Um eine Liste aller Ressourcengruppen abzurufen, die Ihrem Abonnement zugeordnet sind, führen Sie Folgendes aus:

curl https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups?api-version=2022-04-01 -H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

In Azure werden viele REST-APIs veröffentlicht. Jeder Dienstanbieter aktualisiert seine API in seinem eigenen Rhythmus, ohne jedoch vorhandene Programme funktionsunfähig zu machen. Der Dienstanbieter verwendet das api-version-Argument, um Kompatibilität zu gewährleisten.

Wichtig

Das api-version-Argument variiert von Dienst zu Dienst. Für Machine Learning Service ist die aktuelle API-Version beispielsweise 2023-10-01. Die neueste API-Version für andere Azure-Dienste finden Sie in der Azure REST-API-Referenz für den jeweiligen Dienst.

Alle REST-Aufrufe sollten das api-version-Argument auf den erwarteten Wert festlegen. Sie können sich auf die Syntax und Semantik der angegebenen Version verlassen, auch wenn die API weiterentwickelt wird. Wenn Sie eine Anforderung ohne das api-version-Argument an einen Anbieter senden, enthält die Antwort eine von Menschen lesbare Liste unterstützter Werte.

Der Aufruf oben führt zu einer komprimierten JSON-Antwort der folgenden Form:

{
    "value": [
        {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RG1",
            "name": "RG1",
            "type": "Microsoft.Resources/resourceGroups",
            "location": "westus2",
            "properties": {
                "provisioningState": "Succeeded"
            }
        },
        {
            "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/RG2",
            "name": "RG2",
            "type": "Microsoft.Resources/resourceGroups",
            "location": "eastus",
            "properties": {
                "provisioningState": "Succeeded"
            }
        }
    ]
}

Drilldown in Arbeitsbereiche und deren Ressourcen

Um den Satz von Arbeitsbereichen in einer Ressourcengruppe abzurufen, führen Sie Folgendes aus, und ersetzen dabei <YOUR-SUBSCRIPTION-ID>, <YOUR-RESOURCE-GROUP> und <YOUR-ACCESS-TOKEN>:

curl https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.MachineLearningServices/workspaces/?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Sie erhalten erneut eine JSON-Liste, die dieses Mal eine Liste enthält, in der jedes Element einen Arbeitsbereich beschreibt:

{
    "id": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/DeepLearningResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/my-workspace",
    "name": "my-workspace",
    "type": "Microsoft.MachineLearningServices/workspaces",
    "location": "centralus",
    "tags": {},
    "etag": null,
    "properties": {
        "friendlyName": "",
        "description": "",
        "creationTime": "2023-01-03T19:56:09.7588299+00:00",
        "storageAccount": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/DeepLearningResourceGroup/providers/microsoft.storage/storageaccounts/myworkspace0275623111",
        "containerRegistry": null,
        "keyVault": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/DeepLearningResourceGroup/providers/microsoft.keyvault/vaults/myworkspace2525649324",
        "applicationInsights": "/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourcegroups/DeepLearningResourceGroup/providers/microsoft.insights/components/myworkspace2053523719",
        "hbiWorkspace": false,
        "workspaceId": "cba12345-abab-abab-abab-ababab123456",
        "subscriptionState": null,
        "subscriptionStatusChangeTimeStampUtc": null,
        "discoveryUrl": "https://centralus.experiments.azureml.net/discovery"
    },
    "identity": {
        "type": "SystemAssigned",
        "principalId": "abcdef1-abab-1234-1234-abababab123456",
        "tenantId": "1fedcba-abab-1234-1234-abababab123456"
    },
    "sku": {
        "name": "Basic",
        "tier": "Basic"
    }
}

Zum Arbeiten mit Ressourcen in einem Arbeitsbereich wechseln Sie vom allgemeinen management.azure.com-Server zu einem REST-API-Server, der für den Speicherort des Arbeitsbereichs spezifisch ist. Beachten Sie den Wert des discoveryUrl-Schlüssels in der JSON-Antwort oben. Wenn Sie diese URL mit GET abrufen, erhalten Sie eine Antwort ähnlich der folgenden:

{
  "api": "https://centralus.api.azureml.ms",
  "catalog": "https://catalog.cortanaanalytics.com",
  "experimentation": "https://centralus.experiments.azureml.net",
  "gallery": "https://gallery.cortanaintelligence.com/project",
  "history": "https://centralus.experiments.azureml.net",
  "hyperdrive": "https://centralus.experiments.azureml.net",
  "labeling": "https://centralus.experiments.azureml.net",
  "modelmanagement": "https://centralus.modelmanagement.azureml.net",
  "pipelines": "https://centralus.aether.ms",
  "studiocoreservices": "https://centralus.studioservice.azureml.com"
}

Der Wert der api-Antwort ist die URL des Servers, den Sie für weitere Anforderungen verwenden. Zum Auflisten von Experimenten senden Sie beispielsweise den folgenden Befehl. Ersetzen Sie REGIONAL-API-SERVER durch den Wert der api-Antwort (z. B. centralus.api.azureml.ms). Ersetzen Sie außerdem YOUR-SUBSCRIPTION-ID, YOUR-RESOURCE-GROUP, YOUR-WORKSPACE-NAME und YOUR-ACCESS-TOKEN wie üblich:

curl https://<REGIONAL-API-SERVER>/history/v1.0/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/experiments?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Zum Abrufen registrierter Modelle in Ihrem Arbeitsbereich senden Sie auf ähnliche Weise Folgendes:

curl https://<REGIONAL-API-SERVER>/modelmanagement/v1.0/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/models?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Beachten Sie, dass der Pfad zum Auflisten von Experimenten mit history/v1.0 beginnt, während der Pfad mit modelmanagement/v1.0 zum Auflisten von Modellen beginnt. Die REST-API ist in verschiedene Betriebsgruppen unterteilt, die jeweils über einen eindeutigen Pfad verfügen.

Bereich `Path`
Artifacts /rest/api/azureml
Datenspeicher /azure/machine-learning/how-to-access-data
Hyperparameteroptimierung hyperdrive/v1.0/
Modelle modelmanagement/v1.0/
Ausführungsverlauf execution/v1.0/ and history/v1.0/

Sie können die REST-API unter Verwendung des allgemeinen Musters untersuchen:

URL-Komponente Beispiel
https://
REGIONAL-API-SERVER/ centralus.api.azureml.ms/
operations-path/ history/v1.0/
subscriptions/IHRE-ABONNEMENT-ID/ subscriptions/abcde123-abab-abab-1234-0123456789abc/
resourceGroups/IHRE-RESSOURCENGRUPPE/ resourceGroups/MyResourceGroup/
providers/operation-provider/ providers/Microsoft.MachineLearningServices/
provider-resource-path/ workspaces/MyWorkspace/experiments/FirstExperiment/runs/1/
operations-endpoint/ artifacts/metadata/

Erstellen und Ändern von Ressourcen mit PUT- und POST-Anforderungen

Zusätzlich zum Abrufen von Ressourcen mit dem GET-Verb unterstützt die REST-API die Erstellung aller Ressourcen, die zum Trainieren, Bereitstellen und Überwachen von ML-Lösungen erforderlich sind.

Zum Trainieren und Ausführen von ML-Modellen sind Computeressourcen erforderlich. Sie können die Computeressourcen eines Arbeitsbereichs folgendermaßen auflisten:

curl https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/computes?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Um eine benannte Computeressource zu erstellen oder zu überschreiben, verwenden Sie eine PUT-Anforderung. Im folgenden Beispiel werden zusätzlich zu den jetzt bekannten Ersetzungen von YOUR-SUBSCRIPTION-ID, YOUR-RESOURCE-GROUP, YOUR-WORKSPACE-NAME und YOUR-ACCESS-TOKEN auch YOUR-COMPUTE-NAME und die Werte für location, vmSize, vmPriority und scaleSettings ersetzt. Der folgende Befehl erstellt einen dedizierten Einzelknoten vom Typ „Standard_D1“ (eine einfache CPU-Computeressource), der nach 30 Minuten herunterskaliert wird:

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/computes/<YOUR-COMPUTE-NAME>?api-version=2023-10-01' \
  -H 'Authorization:Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "eastus",
    "properties": {
        "computeType": "AmlCompute",
        "properties": {
            "vmSize": "Standard_D1",
            "vmPriority": "Dedicated",
            "scaleSettings": {
                "maxNodeCount": 1,
                "minNodeCount": 0,
                "nodeIdleTimeBeforeScaleDown": "PT30M"
            }
        }
    }
}'

Hinweis

In Windows-Terminals müssen Sie die doppelten Anführungszeichen beim Senden von JSON-Daten möglicherweise mit Escapezeichen versehen. Das heißt, Text wie "location" wird zu \"location\".

Eine erfolgreiche Anforderung erhält eine 201 Created-Antwort, aber beachten Sie, dass diese Antwort einfach nur bedeutet, dass der Bereitstellungsvorgang begonnen hat. Sie müssen eine Abfrage (oder das Portal) verwenden, um den erfolgreichen Abschluss zu bestätigen.

Erstellen eines Arbeitsbereichs mithilfe von REST

Jeder Azure Machine Learning-Arbeitsbereich ist von vier anderen Azure-Ressourcen abhängig: eine Azure Container Registry-Ressource, Azure Key Vault, Azure Application Insights und ein Azure Storage-Konto. Sie können erst einen Arbeitsbereich erstellen, wenn diese Ressourcen vorhanden sind. Weitere Informationen zum Erstellen dieser Ressourcen finden Sie in der REST-API-Referenz.

Um einen Arbeitsbereich zu erstellen, senden Sie einen ähnlichen Befehl wie den folgenden mit PUT an management.azure.com. Auch wenn dieser Aufruf erfordert, dass Sie eine große Anzahl von Variablen festlegen, ist er strukturell identisch mit anderen Aufrufen, die in diesem Artikel erläutert wurden.

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-NEW-WORKSPACE-NAME>?api-version=2023-10-01' \
  -H 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "AZURE-LOCATION>",
    "identity" : {
        "type" : "systemAssigned"
    },
    "properties": {
        "friendlyName" : "<YOUR-WORKSPACE-FRIENDLY-NAME>",
        "description" : "<YOUR-WORKSPACE-DESCRIPTION>",
        "containerRegistry" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ContainerRegistry/registries/<YOUR-REGISTRY-NAME>",
        keyVault" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.Keyvault/vaults/<YOUR-KEYVAULT-NAME>",
        "applicationInsights" : "subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.insights/components/<YOUR-APPLICATION-INSIGHTS-NAME>",
        "storageAccount" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.Storage/storageAccounts/<YOUR-STORAGE-ACCOUNT-NAME>"
    }
}'

Sie sollten eine 202 Accepted-Antwort erhalten und in den zurückgegebenen Headern einen Location-URI. Sie können diesen URI für Informationen zur Bereitstellung mit GET abrufen, einschließlich hilfreicher Debuginformationen, wenn ein Problem mit einer ihrer abhängigen Ressourcen vorliegt (wenn Sie beispielsweise vergessen haben, Administratorzugriff für Ihre Containerregistrierung zu aktivieren).

Erstellen eines Arbeitsbereichs mit einer benutzerseitig zugewiesenen verwalteten Identität

Beim Erstellen eines Arbeitsbereichs können Sie eine benutzerseitig zugewiesene verwaltete Identität angeben, die für den Zugriff auf die zugehörigen Ressourcen verwendet werden soll: ACR, KeyVault, Storage und App Insights. Verwenden Sie den folgenden Anforderungstext, um einen Arbeitsbereich mit einer benutzerseitig zugewiesenen verwalteten Identität zu erstellen.

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-NEW-WORKSPACE-NAME>?api-version=2023-10-01' \
  -H 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "AZURE-LOCATION>",
    "identity": {
      "type": "SystemAssigned,UserAssigned",
      "userAssignedIdentities": {
        "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ManagedIdentity/userAssignedIdentities/<YOUR-MANAGED-IDENTITY>": {}
      }
    },
    "properties": {
        "friendlyName" : "<YOUR-WORKSPACE-FRIENDLY-NAME>",
        "description" : "<YOUR-WORKSPACE-DESCRIPTION>",
        "containerRegistry" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ContainerRegistry/registries/<YOUR-REGISTRY-NAME>",
        keyVault" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.Keyvault/vaults/<YOUR-KEYVAULT-NAME>",
        "applicationInsights" : "subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.insights/components/<YOUR-APPLICATION-INSIGHTS-NAME>",
        "storageAccount" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.Storage/storageAccounts/<YOUR-STORAGE-ACCOUNT-NAME>"
    }
}'

Erstellen eines Arbeitsbereichs mit kundenseitig verwalteten Verschlüsselungsschlüsseln

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 weiterer Satz von Ressourcen in Ihrem Azure-Abonnement zum Speichern Ihrer Daten erstellt.

Zum Erstellen eines Arbeitsbereichs, der Ihre Schlüssel zur Verschlüsselung verwendet, müssen Sie die folgenden Voraussetzungen erfüllen:

  • Der Azure Machine Learning-Dienstprinzipal muss über Zugriff als Mitwirkender auf Ihr Azure-Abonnement verfügen.
  • Sie müssen über einen vorhandenen Azure Key Vault verfügen, der einen Verschlüsselungsschlüssel enthält.
  • Der Azure Key Vault muss sich in derselben Azure-Region befinden, in der Sie den Azure Machine Learning-Arbeitsbereich erstellen möchten.
  • Für den Azure Key Vault muss das vorläufige Löschen und der Bereinigungsschutz aktiviert sein, um vor Datenverlusten im Falle eines versehentlichen Löschvorgangs zu schützen.
  • Sie müssen über eine Zugriffsrichtlinie im Azure Key Vault verfügen, die get-, wrap- und unwrap-Zugriff auf die Azure Cosmos DB-Anwendung gewährt.

Verwenden Sie den folgenden Anforderungstext, um einen Arbeitsbereich zu erstellen, der eine benutzerseitig zugewiesene verwaltete Identität und kundenseitig verwaltete Schlüssel für die Verschlüsselung verwendet. Wenn Sie eine benutzerseitig zugewiesene verwaltete Identität für den Arbeitsbereich verwenden, legen Sie auch die userAssignedIdentity-Eigenschaft auf die Ressourcen-ID der verwalteten Identität fest.

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-NEW-WORKSPACE-NAME>?api-version=2023-10-01' \
  -H 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "eastus2euap",
    "identity": {
      "type": "SystemAssigned"
    },
    "properties": {
      "friendlyName": "<YOUR-WORKSPACE-FRIENDLY-NAME>",
      "description": "<YOUR-WORKSPACE-DESCRIPTION>",
      "containerRegistry" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ContainerRegistry/registries/<YOUR-REGISTRY-NAME>",
      "keyVault" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.Keyvault/vaults/<YOUR-KEYVAULT-NAME>",
      "applicationInsights" : "subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.insights/components/<YOUR-APPLICATION-INSIGHTS-NAME>",
      "storageAccount" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.Storage/storageAccounts/<YOUR-STORAGE-ACCOUNT-NAME>",
      "encryption": {
        "status": "Enabled",
        "identity": {
          "userAssignedIdentity": null
        },      
        "keyVaultProperties": {
           "keyVaultArmId": "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.KeyVault/vaults/<YOUR-VAULT>",
           "keyIdentifier": "https://<YOUR-VAULT>.vault.azure.net/keys/<YOUR-KEY>/<YOUR-KEY-VERSION>",
           "identityClientId": ""
        }
      },
      "hbiWorkspace": false
    }
}'

Löschen von Ressourcen, die nicht mehr benötigt werden

Einige, aber nicht alle Ressourcen unterstützen das DELETE-Verb. Überprüfen Sie die API-Referenz, bevor Sie für Löschanwendungsfälle die REST-API verwenden. Zum Löschen eines Modells können Sie beispielsweise Folgendes verwenden:

curl
  -X DELETE \
'https://<REGIONAL-API-SERVER>/modelmanagement/v1.0/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/models/<YOUR-MODEL-ID>?api-version=2022-05-01' \
  -H 'Authorization:Bearer <YOUR-ACCESS-TOKEN>' 

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