Créer, exécuter et supprimer des ressources Azure Machine Learning, à l’aide de REST

Il existe plusieurs façons de gérer vos ressources Azure Machine Learning. Vous pouvez utiliser le portail, l’interface de ligne de commande ou le Kit de développement logiciel (SDK) Python. Ou vous pouvez choisir l’API REST. L’API REST utilise des verbes HTTP de manière standard pour créer, récupérer, mettre à jour et supprimer des ressources. L’API REST fonctionne avec tout langage de programmation ou outil pouvant effectuer des requêtes HTTP. La structure simple de REST en fait souvent un bon choix dans les environnements de script et pour l’automatisation MLOps.

Dans cet article, vous apprendrez comment :

  • Récupérer un jeton d’autorisation
  • Créer une requête REST correctement formatée à l’aide de l’authentification du principal de service
  • Utiliser des requêtes GET pour récupérer des informations sur les ressources hiérarchiques d’Azure Machine Learning
  • Utiliser des requêtes PUT et POST pour créer et modifier des ressources
  • Utiliser des requêtes PUT pour créer des espaces de travail Azure Machine Learning
  • Utiliser des requêtes DELETE pour nettoyer les ressources

Conditions préalables requises

Récupérer un jeton d’authentification du principal de service

Les requêtes REST administratives sont authentifiées à l’aide d’un flux implicite OAuth2. Ce flux d’authentification utilise un jeton fourni par le principal de service de votre abonnement. Pour récupérer ce jeton, vous aurez besoin des éléments suivants :

  • Votre ID de locataire (identifie l’organisation à laquelle votre abonnement appartient)
  • Votre ID client (qui sera associé au jeton créé)
  • Votre clé secrète client (que vous devez protéger)

Vous devez avoir obtenu ces valeurs dans la réponse à la création de votre principal de service. L’obtention de ces valeurs est documentée dans Configurer l’authentification pour des ressources et workflows Azure Machine Learning. Si vous utilisez l’abonnement de votre entreprise, vous n’êtes peut-être pas autorisé à créer un principal de service. Dans ce cas, vous devez utiliser une abonnement personnel gratuit ou payant.

Pour récupérer un jeton :

  1. Ouvrez une fenêtre de terminal.
  2. Entrez le code suivant sur la ligne de commande
  3. Remplacez <YOUR-TENANT-ID>, <YOUR-CLIENT-ID> et <YOUR-CLIENT-SECRET> par vos propres valeurs. Tout au long de cet article, les chaînes placées entre parenthèses sont des variables que vous devrez remplacer par vos propres valeurs appropriées.
  4. Exécutez la commande.
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>" \

La réponse doit fournir un jeton d’accès valable pendant une heure :

{
    "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"
}

Prenez notez du jeton, car vous l’utiliserez pour authentifier toutes les requêtes d’administration. Pour ce faire, vous devez définir un en-tête d’autorisation dans toutes les requêtes :

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

Notes

Notez que la valeur commence par la chaîne « Porteur », comprenant une espace unique avant que vous n’ajoutiez le jeton.

Obtenir la liste des groupes de ressources associés à votre abonnement

Pour récupérer la liste des groupes de ressources associés à votre abonnement, exécutez :

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

Dans Azure, de nombreuses API REST sont publiées. Chaque fournisseur de services met à jour son API à son propre rythme, mais le fait sans arrêter les programmes existants. Le fournisseur de services utilise l’argument api-version pour garantir la compatibilité.

Important

L’argument api-version varie d’un service à l’autre. Pour le service Machine Learning, par exemple, la version actuelle de l’API est 2023-10-01. Pour trouver la dernière version de l’API pour d’autres services Azure, consultez la référence de l’API REST Azure pour le service spécifique.

Tous les appels REST doivent définir l’argument api-version sur la valeur attendue. Vous pouvez vous appuyer sur la syntaxe et la sémantique de la version spécifiée, même si l’API continue d’évoluer. Si vous envoyez une requête à un fournisseur sans l’argument api-version, la réponse contiendra une liste lisible par un humain des valeurs prises en charge.

L’appel ci-dessus génère une réponse JSON compactée au format suivant :

{
    "value": [
        {
            "id": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourceGroups/RG1",
            "name": "RG1",
            "type": "Microsoft.Resources/resourceGroups",
            "location": "westus2",
            "properties": {
                "provisioningState": "Succeeded"
            }
        },
        {
            "id": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourceGroups/RG2",
            "name": "RG2",
            "type": "Microsoft.Resources/resourceGroups",
            "location": "eastus",
            "properties": {
                "provisioningState": "Succeeded"
            }
        }
    ]
}

Explorer au niveau du détail des espaces de travail et leurs ressources

Pour récupérer l’ensemble des espaces de travail dans un groupe de ressources, exécutez la commande suivante, en remplaçant <YOUR-SUBSCRIPTION-ID>, <YOUR-RESOURCE-GROUP> et <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>"

Là encore, vous recevrez une liste JSON, contenant cette fois-ci une liste dont chaque élément détaille un espace de travail :

{
    "id": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/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/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourcegroups/DeepLearningResourceGroup/providers/microsoft.storage/storageaccounts/myworkspace0275623111",
        "containerRegistry": null,
        "keyVault": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourcegroups/DeepLearningResourceGroup/providers/microsoft.keyvault/vaults/myworkspace2525649324",
        "applicationInsights": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/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"
    }
}

Pour travailler avec des ressources au sein d’un espace de travail, vous basculerez du serveur général management.azure.com vers un serveur d’API REST spécifique à l’emplacement de l’espace de travail. Notez la valeur de la clé de discoveryUrl dans la réponse JSON ci-dessus. Si vous envoyez une requête GET à cette URL, vous recevrez une réponse semblable à la suivante :

{
  "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"
}

La valeur de la réponse api est l’URL du serveur que vous utiliserez pour des requêtes supplémentaires. Par exemple, pour répertorier les expériences, envoyez la commande suivante. Remplacez REGIONAL-API-SERVER par la valeur de la réponse api (par exemple : centralus.api.azureml.ms). Remplacez également YOUR-SUBSCRIPTION-ID, YOUR-RESOURCE-GROUP, YOUR-WORKSPACE-NAME et YOUR-ACCESS-TOKEN comme d’habitude :

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

De même, pour récupérer les modèles inscrits dans votre espace de travail, envoyez :

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

Notez que pour répertorier les expériences, le chemin d’accès commence par history/v1.0, tandis que pour répertorier les modèles, le chemin d’accès commence par modelmanagement/v1.0. L’API REST est divisée en plusieurs groupes opérationnels, chacun doté d’un chemin d’accès distinct.

Domaine Path
Artefacts /rest/api/azureml
Magasins de données /azure/machine-learning/how-to-access-data
Optimisation des hyperparamètres hyperdrive/v1.0/
Modèles modelmanagement/v1.0/
Historique d’exécution execution/v1.0/ et history/v1.0/

Vous pouvez explorer l’API REST à l’aide du modèle général de :

Composant URL Exemple
https://
REGIONAL-API-SERVER/ centralus.api.azureml.ms/
operations-path/ history/v1.0/
subscriptions/YOUR-SUBSCRIPTION-ID/ subscriptions/abcde123-abab-abab-1234-0123456789abc/
resourceGroups/YOUR-RESOURCE-GROUP/ resourceGroups/MyResourceGroup/
providers/operation-provider/ providers/Microsoft.MachineLearningServices/
provider-resource-path/ workspaces/MyWorkspace/experiments/FirstExperiment/runs/1/
operations-endpoint/ artifacts/metadata/

Créer et modifier des ressources à l’aide de requêtes PUT et POST

En plus de la récupération des ressources à l’aide du verbe GET, l’API REST prend en charge la création de toutes les ressources nécessaires pour l’apprentissage, le déploiement et la surveillance des solutions ML.

La formation et l’exécution de modèles ML nécessitent des ressources de calcul. Vous pouvez répertorier les ressources de calcul d’un espace de travail avec :

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

Pour créer ou remplacer une ressource de calcul nommée, vous utiliserez une requête PUT. Dans ce qui suit, outre les substitutions désormais familières de YOUR-SUBSCRIPTION-ID, YOUR-RESOURCE-GROUP, YOUR-WORKSPACE-NAME et YOUR-ACCESS-TOKEN, remplacez YOUR-COMPUTE-NAME ainsi que les valeurs pour location, vmSize, vmPriority, scaleSettings, adminUserName et adminUserPassword. La commande suivante crée un Standard_D1 dédié à nœud unique (une ressource de calcul de base du processeur) qui diminuera après 30 minutes :

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"
            }
        }
    },
    "userAccountCredentials": {
        "adminUserName": "<ADMIN_USERNAME>",
        "adminUserPassword": "<ADMIN_PASSWORD>"
    }
}'

Remarque

Dans les terminaux Windows, vous devrez peut-être faire précéder les guillemets doubles d’un caractère d’échappement lors de l’envoi de données JSON. Autrement dit, un texte comme "location" devient \"location\".

Une requête réussie recevra une réponse 201 Created, mais notez que cette réponse signifie simplement que le processus d’approvisionnement a commencé. Vous devrez procéder à un sondage (ou utiliser le portail) pour confirmer son bon déroulement.

Créer un espace de travail à l’aide de REST

Chaque espace de travail Azure Machine Learning dépend de quatre autres ressources azure : une ressource Azure Container Registry, Azure Key Vault, Azure Application Informations et un compte stockage Azure. Vous ne pouvez pas créer un espace de travail tant que ces ressources n’existent pas. Pour plus d’informations sur la création de ces ressources, consultez les informations de référence sur l’API REST.

Pour créer un espace de travail, faites une requête PUT auprès de management.azure.com selon un appel similaire à ce qui suit. Bien que cet appel vous oblige à définir un grand nombre de variables, il est structurellement identique aux autres appels dont il a été question dans cet article.

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>"
    }
}'

Vous devez recevoir une réponse 202 Accepted et, dans les en-têtes retournés, un URI Location. Vous pouvez OBTENIR cet URI pour plus d’informations sur le déploiement, y compris des informations utiles pour le débogage en cas de problème avec l’une de vos ressources dépendantes (par exemple, si vous avez oublié d’activer l’accès administrateur sur votre registre de conteneurs).

Créer un espace de travail à l’aide d’une identité gérée affectée par l’utilisateur

Lorsque vous créez un espace de travail, vous pouvez spécifier une identité managée affectée par l’utilisateur qui sera utilisée pour accéder aux ressources associées : ACR, Key Vault, Stockage et App Insights. Pour créer un espace de travail avec une identité gérée affectée par l’utilisateur, utilisez le corps de la requête ci-dessous.

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>"
    }
}'

Créer un espace de travail à l’aide de clés de chiffrement gérées par le client

Par défaut, les métadonnées de l’espace de travail sont stockées dans une instance d’Azure Cosmos DB gérée par Microsoft. Les données sont chiffrées avec des clés managées par Microsoft. Au lieu d’utiliser la clé gérée par Microsoft, vous pouvez fournir la clé de votre choix. Ceci a pour effet de créer un autre ensemble de ressources dans votre abonnement Azure pour stocker vos données.

Pour créer un espace de travail qui utilise vos clés pour le chiffrement, vous devez respecter les prérequis suivants :

  • le principal du service Azure Machine Learning doit avoir un accès contributeur à votre abonnement Azure.
  • Vous devez disposer d’un Azure Key Vault contenant une clé de chiffrement.
  • Le coffre Azure Key Vault doit se trouver dans la même région Azure que celle où vous allez créer l’espace de travail Azure Machine Learning.
  • Le coffre Azure Key Vault doit avoir la suppression réversible et la protection de purge activée pour protéger contre la perte de données en cas de suppression accidentelle.
  • Vous devez disposer dans l’Azure Key Vault d’une stratégie d’accès accordant les accès get, wrap et unwrap à l’application Azure Cosmos DB.

Pour créer un espace de travail qui utilise une identité managée affectée par l’utilisateur et des clés gérées par le client pour le chiffrement, utilisez le corps de requête ci-dessous. Lors de l’utilisation d’une identité managée affectée par l’utilisateur pour l’espace de travail, définissez aussi la propriété userAssignedIdentity sur l’ID de ressource de l’identité managée.

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
    }
}'

Supprimer les ressources dont vous n’avez plus besoin

Certaines ressources, mais pas toutes, prennent en charge le verbe DELETE. Vérifiez les informations de référence sur l’API avant de valider l’API REST pour les cas d’utilisation en suppression. Par exemple, pour supprimer un modèle, vous pouvez utiliser :

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

Dépannage

Erreurs du fournisseur de ressources

Lors de la création d’un espace de travail Azure Machine Learning ou d’une ressource utilisée par l’espace de travail, vous pouvez recevoir un message d’erreur semblable aux messages suivants :

  • No registered resource provider found for location {location}
  • The subscription is not registered to use namespace {resource-provider-namespace}

Par défaut, la plupart des fournisseurs de ressources sont enregistrés automatiquement. Si vous recevez ce message, vous devez inscrire le fournisseur mentionné.

Le tableau suivant contient la liste des fournisseurs de ressources requis par Azure Machine Learning :

Fournisseur de ressources Pourquoi il est nécessaire
Microsoft.MachineLearningServices Création de l’espace de travail Azure Machine Learning.
Microsoft.Storage Un compte Stockage Azure est utilisé comme stockage par défaut pour l’espace de travail.
Microsoft.ContainerRegistry Azure Container Registry est utilisé par l’espace de travail pour créer des images Docker.
Microsoft.KeyVault Azure Key Vault est utilisé par l’espace de travail pour stocker les secrets.
Microsoft.Notebooks Notebooks intégrés sur l’instance de calcul Azure Machine Learning.
Microsoft.ContainerService Si vous envisagez de déployer des modèles entraînés sur Azure Kubernetes Service.

Si vous prévoyez d’utiliser une clé gérée par le client avec Azure Machine Learning, les fournisseurs de services suivants doivent être inscrits :

Fournisseur de ressources Pourquoi il est nécessaire
Microsoft.DocumentDB Instance Azure CosmosDB qui journalise les métadonnées de l’espace de travail.
Microsoft.Search La Recherche Azure fournit des fonctionnalités d’indexation pour l’espace de travail.

Si vous envisagez d’utiliser un réseau virtuel managé avec Azure Machine Learning, le fournisseur de ressources Microsoft.Network doit être inscrit. Ce fournisseur de ressources est utilisé par l’espace de travail lors de la création de points de terminaison privés pour le réseau virtuel managé.

Pour plus d’informations sur l’inscription d’un fournisseur de ressources, consultez Résoudre les erreurs d’inscription de fournisseurs de ressources.

Déplacement de l’espace de travail

Avertissement

Le déplacement de votre espace de travail Azure Machine Learning vers un autre abonnement, ou le déplacement de l’abonnement propriétaire vers un nouveau locataire, n’est pas pris en charge. En effet, cela peut provoquer des erreurs.

Suppression d'Azure Container Registry

L'espace de travail Azure Machine Learning utilise Azure Container Registry (ACR) pour certaines opérations. Il crée automatiquement une instance ACR dès qu'il en a besoin.

Avertissement

Une fois qu’un Azure Container Registry a été créé pour un espace de travail, ne le supprimez pas. Cela entraînerait l’arrêt de votre espace de travail Azure Machine Learning.

Étapes suivantes