Gérer les espaces de travail Azure Machine Learning à l’aide d’Azure CLI

S’APPLIQUE À :Extension Azure ML CLI v2 (actuelle)

Cet article explique comment créer et gérer un espace de travail Azure Machine Learning à l’aide d’Azure CLI. Azure CLI fournit des commandes pour la gestion des ressources Azure, et est conçu pour vous permettre de commencer rapidement à utiliser Azure en mettant l’accent sur l’automatisation. L’extension Machine Learning de l’interface CLI fournit les commandes pour utiliser les ressources d’Azure Machine Learning.

Vous pouvez aussi gérer des espaces de travail en utilisant le portail Azure et le SDK Python, Azure PowerShell ou l’extension VS Code.

Prérequis

Limites

  • Lors de la création d’un espace de travail, vous pouvez soit créer automatiquement les services nécessaires à l’espace de travail, soit utiliser des services existants. Si vous voulez utiliser des services existants d’un autre abonnement Azure que l’espace de travail, vous devez inscrire l’espace de noms Azure Machine Learning dans l’abonnement qui contient ces services. Par exemple, la création d’un espace de travail dans l’abonnement A qui utilise un compte de stockage de l’abonnement B, l’espace de noms Azure Machine Learning doit être inscrit dans l’abonnement B pour que vous puissiez utiliser le compte de stockage avec l’espace de travail.

    Le fournisseur de ressources pour Azure Machine Learning est Microsoft.MachineLearningServices. Pour plus d’informations sur la façon de déterminer s’il est inscrit et de l’inscrire, consultez l’article Fournisseurs et types de ressources Azure.

    Important

    Cela s’applique uniquement aux ressources fournies lors de la création de l’espace de travail : comptes de stockage Azure, registre de conteneurs Azure, Azure Key Vault et Application Insights.

Conseil

Une instance Azure Application Insights est créée lorsque vous créez l’espace de travail. Si vous le souhaitez, vous pouvez supprimer l’instance Application Insights après la création du cluster. Sa suppression limite les informations collectées à partir de l’espace de travail, et peut compliquer la résolution des problèmes. Si vous supprimez l’instance Application Insights créée par l’espace de travail, vous ne pouvez pas la recréer sans supprimer et recréer l’espace de travail.

Pour plus d’informations sur l’utilisation de cette instance Application Insights, consultez Superviser et collecter des données à partir des points de terminaison de service web Machine Learning.

Communications CLI sécurisées

Certaines des commandes Azure CLI communiquent avec Azure Resource Manager via internet. Cette communication est sécurisée par HTTPS/TLS 1.2.

Avec l’extension Azure Machine Learning CLI v2 (« ml »), toutes les commandes communiquent avec Azure Resource Manager. Cela comprend les données opérationnelles telles que les métadonnées et les paramètres YAML. Si votre espace de travail Azure Machine Learning est public (c'est-à-dire qu'il ne se trouve pas derrière un réseau virtuel), aucune configuration supplémentaire n'est requise. Les communications sont sécurisées à l’aide de HTTPS/TLS 1.2.

Si votre espace de travail Azure Machine Learning utilise un point de terminaison privé et un réseau virtuel, et que vous utilisez CLI v2, choisissez l’une des configurations suivantes :

Pour plus d’informations sur la communication CLI v2, consultez Installer et configurer et l’interface CLI.

Connexion de la CLI à votre abonnement Azure

Important

Si vous utilisez Azure Cloud Shell, vous pouvez ignorer cette section. Le shell cloud vous authentifie automatiquement à l’aide du compte avec lequel vous vous connectez à votre abonnement Azure.

Il existe plusieurs façons de vous authentifier auprès de votre abonnement Azure à partir de l’interface CLI. La plus simple consiste à s’authentifier de manière interactive à l’aide d’un navigateur. Pour vous authentifier de manière interactive, ouvrez une ligne de commande ou un terminal et utilisez la commande suivante :

az login

Si l’interface CLI peut ouvrir votre navigateur par défaut, elle le fera et chargera une page de connexion par la même occasion. Dans le cas contraire, vous devez ouvrir un navigateur et suivre les instructions de la ligne de commande. Les instructions impliquent de naviguer vers https://aka.ms/devicelogin et d’entrer un code d’autorisation.

Conseil

Après vous être connecté, vous voyez une liste des abonnements associés à votre compte Azure. Les informations d’abonnement avec isDefault: true correspond à l’abonnement actuellement activé pour les commandes Azure CLI. Cet abonnement doit être le même que celui qui contient votre espace de travail Azure Machine Learning. Vous pouvez trouver l’ID d’abonnement à partir du portail Microsoft Azure en visitant la page Vue d’ensemble de votre espace de travail.

Pour sélectionner un autre abonnement, utilisez la commande az account set -s <subscription name or ID> et spécifiez le nom ou l’ID de l’abonnement auquel vous voulez passer. Pour plus d’informations sur la sélection d’abonnements, consultez Utiliser plusieurs abonnements Azure.

Pour les autres méthodes d’authentification, consultez Se connecter avec Azure CLI.

Créer un groupe de ressources

L’espace de travail Azure Machine Learning doit être créé à l’intérieur d’un groupe de ressources. Vous pouvez utiliser un groupe de ressources existant ou en créer un. Pour créer un groupe de ressources, utilisez la commande suivante. Remplacez <resource-group-name> par le nom à utiliser pour ce groupe de ressources. Remplacez <location> par la région Azure à utiliser pour ce groupe de ressources :

Notes

Vous devez sélectionner une région où Azure Machine Learning est disponible. Pour plus d’informations, consultez Disponibilité des produits par région.

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

La réponse de cette commande ressemble au JSON suivant. Vous pouvez utiliser les valeurs de sortie pour localiser les ressources créées, ou les analyser comme entrée pour les étapes suivantes d’utilisation de l’interface CLI à des fins d’automatisation.

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

Pour plus d’informations sur l’utilisation des groupes de ressources, consultez az group.

Créer un espace de travail

Lorsque vous déployez un espace de travail Azure Machine Learning, divers autres services sont requis en tant que ressources associées dépendantes. Lorsque vous utilisez l’interface CLI pour créer l’espace de travail, celle-ci peut soit créer pour vous des ressources associées, soit attacher des ressources existantes.

Important

Lorsque vous attachez votre propre compte de stockage, vérifiez qu’il répond aux critères suivants :

  • Le compte de stockage n’est pas un compte Premium (Premium_LRS ou Premium_GRS).
  • Les fonctionnalités Azure Blob et Azure File sont activées.
  • L’espace de noms hiérarchique (ADLS Gen 2) est désactivé. Ces exigences concernent uniquement le compte de stockage par défaut que l’espace de travail utilise.

Lorsque vous attachez le registre de conteneurs Azure, le compte administrateur doit être activé avant de pouvoir être utilisé avec un espace de travail Azure Machine Learning.

Pour créer un nouvel espace de travail dans lequel les services sont créés automatiquement, utilisez la commande suivante :

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

Important

Lorsque vous attachez des ressources existantes, vous n’avez pas besoin de les spécifier toutes. Vous pouvez en spécifier une ou plusieurs. Par exemple, vous pouvez spécifier un compte de stockage existant et l’espace de travail créera les autres ressources.

La sortie de la commande de création d’espace de travail ressemble au JSON suivant. Vous pouvez utiliser les valeurs de sortie pour localiser les ressources créées ou les analyser comme entrée pour les étapes suivantes d’utilisation de l’interface CLI.

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

Configurations avancées

Configurer l’espace de travail pour la connectivité de réseau privé

Selon le cas d’utilisation et les exigences de votre organisation, vous pouvez choisir de configurer Azure Machine Learning en utilisant une connectivité de réseau privé. Vous pouvez utiliser Azure CLI pour déployer un espace de travail et un point de terminaison de liaison privée pour la ressource d’espace de travail. Pour plus d’informations sur l’utilisation d’un point de terminaison privé et d’un réseau virtuel (VNet) avec votre espace de travail, consultez Vue d’ensemble de l’isolement et de la confidentialité des réseaux virtuels. Pour les configurations de ressources complexes, examinez également les options de déploiement basées sur un modèle, dont Azure Resource Manager.

Lors de l’utilisation d’une liaison privée, votre espace de travail ne peut pas utiliser Azure Container Registry pour générer des images Docker. Par conséquent, vous devez définir la propriété image_build_compute sur un nom de cluster de calcul d’UC à utiliser pour la génération de l’environnement d’image Docker. Vous pouvez également spécifier si l’espace de travail de la liaison privée doit être accessible sur Internet à l’aide de la propriété public_network_access.

$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

Après avoir créé l’espace de travail, utilisez les commandes de l’interface CLI de mise en réseau Azure pour créer un point de terminaison de liaison privé pour l’espace de travail.

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>

Pour créer les entrées de zone DNS privée pour l’espace de travail, utilisez les commandes suivantes :

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

Clé gérée par le client et espace de travail High Business Impact

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. Cela a pour effet de créer un ensemble supplémentaire de ressources dans votre abonnement Azure pour stocker vos données.

Pour en savoir plus sur les ressources créées lorsque vous apportez votre propre clé de chiffrement, consultez Chiffrement des données avec Azure Machine Learning.

Utilisez le paramètre customer_managed_key contenant les paramètres key_vault et key_uri pour spécifier l’ID de ressource et l’URI de la clé à l’intérieur du coffre.

Pour limiter les données que Microsoft collecte sur votre espace de travail, vous pouvez en outre spécifier la propriété hbi_workspace.

$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

Ensuite, vous pouvez référencer ce fichier de configuration dans la commande CLI de création d’espace de travail.

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

Notes

Avec des autorisations de contributeur sur votre abonnement, autorisez l’application Azure Machine Learning (dans Gestion des identités et des accès) à gérer les ressources supplémentaires de chiffrement de données.

Notes

Azure Cosmos DB ne permet pas de stocker des informations, telles que les performances du modèle, les informations consignées par les expériences ou les informations enregistrées à partir de vos modèles de déploiement.

Important

Sélectionner High Business Impact ne peut être effectué que lors de la création d’un espace de travail. Vous ne pouvez pas modifier ce paramètre une fois l’espace de travail créé.

Pour plus d’informations sur les clés gérées par le client et sur l’espace de travail High Business Impact, consultez Sécurité Enterprise pour Azure Machine Learning.

Utilisation de l’interface CLI pour gérer les espaces de travail

Obtenir des informations sur l’espace de travail

Pour obtenir des informations sur un espace de travail, utilisez la commande suivante :

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

Pour plus d’informations, consultez la documentation az ml workspace show.

Mettre à jour un espace de travail

Utilisez la commande suivante pour mettre à jour un espace de travail :

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

Pour plus d’informations, consultez la documentation az ml workspace update.

Synchroniser les clés pour les ressources dépendantes

Si vous modifiez les clés d’accès pour l’une des ressources utilisées par votre espace de travail, cela prend environ une heure de synchroniser l’espace de travail avec la nouvelle clé. Pour forcer l’espace de travail à synchroniser les nouvelles clés immédiatement, utilisez la commande suivante :

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

Pour plus d’informations sur la modification des clés, consultez Regénérer les clés d’accès au stockage.

Pour plus d’informations sur la commande sync-keys, consultez az ml workspace sync-keys.

Supprimer un espace de travail

Avertissement

Si la suppression réversible est activée pour l’espace de travail, celui-ci peut être récupéré après sa suppression. Si la suppression réversible n’est pas activée ou si vous sélectionnez l’option permettant de supprimer définitivement l’espace de travail, celui-ci ne peut plus être récupéré. Pour plus d'informations, consultez Récupérer un espace de travail supprimé.

Pour supprimer un espace de travail une fois qu’il n’est plus nécessaire, utilisez la commande suivante :

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

Important

La suppression d’un espace de travail ne supprime pas le service Application Insight, le compte de stockage, le coffre de clés ou le registre de conteneurs utilisé par l’espace de travail.

Vous pouvez également supprimer le groupe de ressources, ce qui supprime l’espace de travail et toutes les autres ressources Azure dans le groupe de ressources. Pour supprimer le groupe de ressources, utilisez la commande suivante :

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

Pour plus d’informations, consultez la documentation az ml workspace delete.

Conseil

Le comportement par défaut d’Azure Machine Learning consiste en une suppression réversible de l’espace de travail. Cela signifie que l’espace de travail n’est pas immédiatement supprimé, mais marqué pour suppression. Pour plus d’informations, consultez Suppression réversible.

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

Pour plus d’informations sur l’extension Azure CLI pour Machine Learning, consultez la documentation az ml.

Pour vérifier les problèmes liés à votre espace de travail, consultez Comment utiliser les diagnostics de l’espace de travail.

Pour découvrir comment déplacer un espace de travail vers un nouvel abonnement Azure, consultez Déplacement d’un espace de travail.

Pour plus d’informations sur la façon de maintenir votre Azure Machine Learning à jour avec les dernières mises à jour de sécurité, consultez Gestion des vulnérabilités.