Administración de áreas de trabajo de Azure Machine Learning mediante la CLI de Azure

SE APLICA A: Extensión de ML de la CLI de Azure v2 (actual)

En este artículo, aprenderá a crear y administrar áreas de trabajo de Azure Machine Learning mediante la CLI de Azure. La CLI de Azure proporciona comandos para administrar recursos de Azure y está diseñada para ayudarle a trabajar rápidamente con la plataforma, con especial énfasis en la automatización. La extensión de aprendizaje automático de la CLI de Azure proporciona comandos para trabajar con recursos de Azure Machine Learning.

También puede usar los métodos siguientes para crear y administrar áreas de trabajo de Azure Machine Learning:

Requisitos previos

  • Una suscripción de Azure con una versión gratuita o de pago de Azure Machine Learning. Si no tiene una suscripción a Azure, cree una cuenta gratuita antes de empezar.

  • CLI de Azure instalada, si quiere ejecutar los comandos de la CLI de Azure en este artículo localmente.

    Si ejecuta los comandos de la CLI de Azure en Azure Cloud Shell, no es necesario instalar nada. El explorador accede a la versión más reciente de la nube de la CLI de Azure y a la extensión de Azure Machine Learning.

Limitaciones

  • Al crear una nueva área de trabajo, puede crear automáticamente los servicios necesarios para esa área de trabajo o usar los servicios ya existentes. Si quiere usar los servicios ya existentes de una suscripción de Azure diferente al área de trabajo, debe registrar el espacio de nombres de Azure Machine Learning en la suscripción que contiene esos servicios. Por ejemplo, si crea un área de trabajo en la suscripción A que usa una cuenta de almacenamiento en la suscripción B, el espacio de nombres de Azure Machine Learning debe estar registrado en la suscripción B antes de que el área de trabajo pueda usar la cuenta de almacenamiento.

    El proveedor de recursos para Azure Machine Learning es Microsoft.MachineLearningService. Para obtener información sobre cómo ver si está registrado o registrarlo, consulte Tipos y proveedores de recursos de Azure.

    Importante

    Esta información aplica solo para los recursos proporcionados durante la creación del área de trabajo para cuentas de Azure Storage, Azure Container Registry, Azure Key Vault y Application Insights.

Conexión a su suscripción de Azure

Si utiliza Azure Cloud Shell desde Azure Portal, puede omitir esta sección. Cloud Shell lo autentica automáticamente mediante la suscripción de Azure con la que inició sesión.

Hay varias maneras de autenticarse localmente en la suscripción de Azure desde la CLI de Azure. La manera más sencilla es usar un explorador.

Para autenticarse de forma interactiva, abra una línea de comandos o un terminal y ejecute az login. Si la CLI puede abrir el explorador predeterminado, lo hará y cargará una página de inicio de sesión. Si no, siga las instrucciones de la línea de comandos para abrir un explorador para https://aka.ms/devicelogin y escriba el código de autorización de dispositivo.

Sugerencia

Después de iniciar sesión, verá una lista de suscripciones asociadas con la cuenta de Azure. La información de suscripción con isDefault: true es la suscripción actualmente activada para los comandos de la CLI de Azure. Esta suscripción debe ser la misma que la que contiene el área de trabajo de Azure Machine Learning. Puede buscar la información de suscripción en la página de información general del área de trabajo en Azure Portal.

Para seleccionar otra suscripción para utilizar los comandos de la CLI de Azure, ejecute el comando az account set -s <subscription> y especifique el nombre o id. de la suscripción a la que quiere cambiar. Para más información sobre la selección de suscripción, consulte Uso de varias suscripciones de Azure.

Para obtener otros métodos de autenticación, consulte Inicio de sesión con la CLI de Azure.

Crear un grupo de recursos

El área de trabajo de Azure Machine Learning debe crearse dentro de un grupo de recursos nuevo o que ya exista. Para crear un nuevo grupo de recursos, ejecute el siguiente comando. Reemplace <resource-group-name> por el nombre y <location> por la región de Azure que quiere utilizar para este grupo de recursos.

Nota:

Asegúrese de seleccionar una región en la que Azure Machine Learning esté disponible. Para obtener más información, consulte los Productos disponibles por región.

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

La respuesta a este comando es similar al siguiente JSON. Puede utilizar los valores de salida para buscar los recursos creados o pasarlos como entrada para otros comandos o automatización de la CLI de Azure.

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

Para obtener más información sobre cómo trabajar con grupos de recursos, consulte az group.

Creación de un área de trabajo

Un área de trabajo de Azure Machine Learning implementada requiere otros servicios como recursos asociados dependientes. Cuando la CLI de Azure se usa para crear un área de trabajo, la CLI puede crear los nuevos recursos asociados o puede adjuntar recursos existentes.

Para crear un área de trabajo con nuevos servicios dependientes creados automáticamente, ejecute el siguiente comando:

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

Para crear un área de trabajo que utilice recursos existentes, primero defina los recursos en un archivo de configuración de YAML, como se describe en la siguiente sección. A continuación, haga referencia al archivo YAML en el comando de creación del área de trabajo de la CLI de Azure como se indica a continuación:

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

La salida de este comando de creación de áreas de trabajo es similar al siguiente código JSON. Puede utilizar los valores de salida para buscar los recursos creados o pasarlos como entrada a otros comandos de la CLI de Azure.

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

Archivo de configuración de YAML

Para utilizar los recursos existentes para una nueva área de trabajo, defina los recursos en un archivo de configuración de YAML. En el siguiente ejemplo se muestra un archivo de configuración del área de trabajo YAML:

$schema: https://azuremlschemas.azureedge.net/latest/workspace.schema.json
name: mlw-basicex-prod
location: eastus
display_name: Bring your own dependent resources-example
description: This configuration specifies a workspace configuration with existing dependent resources
storage_account: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.Storage/storageAccounts/<STORAGE_ACCOUNT>
container_registry: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.ContainerRegistry/registries/<CONTAINER_REGISTRY>
key_vault: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.KeyVault/vaults/<KEY_VAULT>
application_insights: /subscriptions/<SUBSCRIPTION_ID>/resourceGroups/<RESOURCE_GROUP>/providers/Microsoft.insights/components/<APP_INSIGHTS>
tags:
  purpose: demonstration

No es necesario especificar todos los recursos dependientes asociados en el archivo de configuración. Puede especificar uno o varios de los recursos y permitir que los demás se creen automáticamente.

Debe proporcionar los identificadores para los recursos existentes en el archivo YAML. Puede obtener estos identificadores mediante la visualización del recurso Propiedades en Azure Portal o mediante la ejecución de los siguientes comandos de la CLI de Azure:

  • Azure Application Insights:
    az monitor app-insights component show --app <application-insight-name> -g <resource-group-name> --query "id"
  • Azure Container Registry:
    az acr show --name <container-registry-name> -g <resource-group-name> --query "id"
  • Azure Key Vault:
    az keyvault show --name <key-vault-name> --query "id"
  • Cuenta de Azure Storage:
    az storage account show --name <storage-account-name> --query "id"

Los resultados de la consulta tienen un aspecto similar a la siguiente cadena:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Recursos dependientes asociados

Las siguientes consideraciones y limitaciones se aplican a los recursos dependientes asociados a las áreas de trabajo.

Application Insights

Sugerencia

Se crea una instancia de Azure Application Insights al crear el área de trabajo. Si quiere, puede eliminar la instancia de Application Insights después de la creación del clúster. Si la elimina, se limita la información que se recopila del área de trabajo y la solución de problemas puede volverse más difícil. Si elimina la instancia de Application Insights que crea el área de trabajo, la única forma de volver a crearla es eliminar y volver a crear el área de trabajo.

Para obtener más información sobre el uso de la instancia de Application Insights, consulte Supervisión y recopilación de datos de los puntos de conexión del servicio web ML.

Container Registry

El área de trabajo de Azure Machine Learning utiliza Azure Container Registry para algunas operaciones y crea automáticamente una instancia de Container Registry cuando la necesita por primera vez.

Advertencia

Una vez que se crea un Azure Container Registry para un área de trabajo, no lo elimine. Si lo hace, se interrumpe el área de trabajo de Azure Machine Learning.

Para usar un registro de contenedor de Azure existente con un área de trabajo de Azure Machine Learning, debe habilitar la cuenta de administrador en el registro de contenedor.

Cuenta de almacenamiento

Si utiliza una cuenta de almacenamiento existente para el área de trabajo, debe cumplir los siguientes criterios. Estos requisitos solo se aplican a la cuenta de almacenamiento predeterminada.

  • La cuenta no puede ser Premium_LRS ni Premium_GRS.
  • Las funcionalidades de Azure Blob y Azure File deben estar habilitadas.
  • El espacio de nombres jerárquico debe deshabilitarse para Azure Data Lake Storage.

Protección de las comunicaciones de la CLI de Azure

Todos los comandos de Azure Machine Learning V2 az ml comunican datos operativos, como parámetros y metadatos de YAML, a Azure Resource Manager. Algunos de los CLI de Azure comandos se comunican con Azure Resource Manager a través de Internet.

Si el área de trabajo de Azure Machine Learning es pública y no está detrás de una red virtual, las comunicaciones se protegen mediante HTTPS/TLS 1.2. No se requiere ninguna configuración adicional.

Si el área de trabajo de Azure Machine Learning utiliza un punto de conexión privado y una red virtual, debe elegir una de las siguientes configuraciones para usar la CLI de Azure:

  • Para comunicarse a través de la red pública de Internet, establezca el parámetro --public-network-access en Enabled.

  • Para evitar la comunicación a través de la red pública de Internet por motivos de seguridad, configure Azure Machine Learning para utilizar la conectividad de red privada con un punto de conexión de Azure Private Link, como se describe en la siguiente sección.

Conectividad de red privada

Según el caso de uso y los requisitos de la organización, puede configurar Azure Machine Learning para utilizar la conectividad de red privada. Puede usar la CLI de Azure para implementar un área de trabajo y un punto de conexión de vínculo privado para el recurso del área de trabajo.

Si utiliza puntos de conexión de vínculo privado para Azure Container Registry y Azure Machine Learning, no puede usar tareas de Container Registry para compilar imágenes de entorno de Docker. En su lugar, debe crear imágenes mediante un clúster de proceso de Azure Machine Learning.

En el archivo de configuración del área de trabajo de YAML, debe establecer la propiedad image_build_compute en un nombre de clúster de proceso que se usará para la creación del entorno de imagen de Docker. Configurando la propiedad public_network_access en Disabled, puede especificar que no se pueda acceder al área de trabajo de vínculo privado a través de Internet.

En el código siguiente se muestra un archivo de configuración de área de trabajo de ejemplo para la conectividad de red privada.

$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

Después de crear el área de trabajo, use los comandos de la red de CLI de Azure para crear un punto de conexión de vínculo privado para el área de trabajo.

az network private-endpoint create \
    --name <private-endpoint-name> \
    --vnet-name <virtual-network-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>

Para crear las entradas de zona del sistema de nombres de dominio (DNS) privadas para el área de trabajo, use los siguientes comandos:

# 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 <virtual-network-name> \
    --registration-enabled false

az network private-endpoint dns-zone-group create \
    -g <resource-group-name> \
    --endpoint-name <private-endpoint-name> \
    --name <zone-group-name> \
    --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 <virtual-network-name> \
    --registration-enabled false

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

Para más información sobre el uso de un punto de conexión privado y una red virtual con el área de trabajo, consulte los siguientes artículos:

Puede utilizar el siguiente proceso para proteger las comunicaciones con todos los recursos de Azure Resource Manager de un grupo de administración de Azure mediante Private Link:

  1. Creación de una instancia de vínculo privado para administrar recursos de Azure.
  2. Creación de un punto de conexión privado para la instancia de vínculo privado creada en el paso anterior.

Importante

Para configurar un vínculo privado para Azure Resource Manager, debe ser el propietario de la suscripción de Azure y el propietario o Colaborador en el grupo de administración raíz. Para más información, consulte Creación de un vínculo privado para administrar recursos de Azure.

Configuraciones avanzadas

Existen otras configuraciones avanzadas que se pueden aplicar a las áreas de trabajo. En el caso de configuraciones de recursos complejas, consulte también opciones de implementación basadas en plantillas, incluido Azure Resource Manager.

Claves administradas por el cliente

De manera predeterminada, los metadatos del área de trabajo se almacenan en una instancia de Azure Cosmos DB que Microsoft mantiene y cifra mediante claves administradas por Microsoft. En lugar de usar la clave administrada por Microsoft, puede proporcionar su propia clave. El uso de su propia clave crea un conjunto adicional de recursos en la suscripción de Azure para almacenar los datos.

Nota:

Azure Cosmos DB no se utiliza para almacenar información de rendimiento del modelo, ni información registrada por experimentos, ni información registrada desde las implementaciones de modelo.

Para crear un área de trabajo que utilice su propia clave, use el parámetro customer_managed_key en el archivo de configuración del área de trabajo YAML y especifique el id. de recurso del contenedor key_vault y key_uri de la clave dentro del almacén.

$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

Para obtener más información sobre los recursos que se crean al usar su propia clave para el cifrado, consulte Cifrado de datos con Azure Machine Learning.

Nota:

Para administrar los recursos de cifrado de datos agregados, utilice administración de identidad y acceso para autorizar la aplicación Machine Learning con permisos de colaborador en la suscripción.

Áreas de trabajo de alto impacto de negocios

Para limitar los datos que Microsoft recopila en el área de trabajo, puede especificar un área de trabajo de alto impacto empresarial estableciendo la propiedad hbi_workspace en el archivo de configuración de YAML en TRUE. Solo puede establecer un gran impacto de negocios al crear un área de trabajo. Este valor no se puede cambiar tras la creación del área de trabajo.

Para obtener más información sobre las claves administradas por el cliente y el área de trabajo de alto impacto de negocio, vea Seguridad Enterprise para Azure Machine Learning.

Uso de la CLI de Azure para administrar áreas de trabajo

Para administrar áreas de trabajo, puede usar los comandos az ml workspace.

Obtención de la información del área de trabajo

Para obtener información sobre un área de trabajo, use el siguiente comando:

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

Para obtener más información, consulte az ml workspace show.

Actualización de un área de trabajo

Use el comando siguiente para actualizar un área de trabajo:

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

Por ejemplo, el comando siguiente actualiza un área de trabajo para habilitar el acceso a la red pública:

az ml workspace update -n <workspace-name> -g <resource-group-name> --public-network-access enabled

Para más información, consulte az ml workspace update.

Sincronización de claves para recursos dependientes

Si cambia las claves de acceso de uno de los recursos que utiliza el área de trabajo, el área de trabajo tarda aproximadamente una hora en sincronizarse con las nuevas claves. Para forzar la sincronización inmediata del área de trabajo con las nuevas claves, use el siguiente comando:

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

Desplazamiento de un área de trabajo

El traslado de un área de trabajo de Azure Machine Learning está actualmente en versión preliminar. Para obtener más información, consulte Traslado de áreas de trabajo de Azure Machine Learning entre suscripciones (versión preliminar).

Eliminar un área de trabajo

Use el siguiente comando para eliminar un área de trabajo cuando ya no es necesaria:

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

El comportamiento predeterminado de Azure Machine Learning es eliminar temporalmente el área de trabajo. El área de trabajo no se elimina inmediatamente, sino que se marca para su eliminación. Para más información, consulte Eliminación temporal.

Advertencia

Si la eliminación temporal está habilitada para el área de trabajo, se puede recuperar después de la eliminación. Si la eliminación temporal no está habilitada o selecciona la opción para eliminar permanentemente el área de trabajo, no se puede recuperar. Para más información, consulte Recuperación de un área de trabajo eliminada.

La eliminación de un área de trabajo no elimina la cuenta de almacenamiento, las conclusiones de la aplicación, el almacén de claves ni el registro de contenedor que utiliza el área de trabajo. Para eliminar el área de trabajo, los recursos dependientes y todos los demás recursos de Azure del grupo de recursos, puede eliminar el grupo de recursos. Para eliminar el grupo de recursos, use el siguiente comando:

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

Para obtener más información, consulte az ml workspace delete.

Solucionar errores del proveedor de recursos

Al crear un área de trabajo de Azure Machine Learning o un recurso usado por el área de trabajo, puede recibir un mensaje de error similar a los siguientes:

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

Muchos proveedores de recursos se registran automáticamente, aunque no todos. Si recibe este mensaje, debe registrar el proveedor mencionado.

En la tabla siguiente se muestra una lista de los proveedores de recursos requeridos por Azure Machine Learning:

Proveedor de recursos Por qué se necesita
Microsoft.MachineLearningServices Creación del área de trabajo de Azure Machine Learning.
Microsoft.Storage La cuenta de Azure Storage se usa como el almacenamiento predeterminado del área de trabajo.
Microsoft.ContainerRegistry Azure Container Registry usa el área de trabajo para crear imágenes de Docker.
Microsoft.KeyVault El área de trabajo usa Azure Key Vault para almacenar secretos.
Microsoft.Notebooks Cuadernos integrados en la instancia de proceso de Azure Machine Learning.
Microsoft.ContainerService Si planea implementar modelos entrenados en Azure Kubernetes Services.

Si planea usar una clave administrada por el cliente con Azure Machine Learning, se deben registrar estos proveedores de servicios:

Proveedor de recursos Por qué se necesita
Microsoft.DocumentDB Instancia de Azure Cosmos DB que registra los metadatos del área de trabajo.
Microsoft.Search Azure Search proporciona funcionalidades de indexación para el área de trabajo.

Si planea usar una red virtual administrada con Azure Machine Learning, el proveedor de recursos de Microsoft.Network debe registrarse. El área de trabajo usa este proveedor de recursos al crear puntos de conexión privados para la red virtual administrada.

Para obtener más información sobre cómo registrar un proveedor de recursos, consulte Registro del proveedor de recursos.

  • Para obtener más información sobre la extensión de la CLI de Azure para el aprendizaje automático, consulte la documentación de az ml.
  • Para obtener información sobre los diagnósticos que pueden identificar y ayudar a resolver problemas del área de trabajo, consulte Cómo utilizar los diagnósticos del área de trabajo.
  • Para obtener información sobre cómo mantener Azure Machine Learning actualizado con las actualizaciones de seguridad más recientes, consulte Administración de vulnerabilidades.