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

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

En este artículo obtendrá información sobre cómo crear y administrar áreas de trabajo de Azure Machine Learning usando 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 proporciona comandos para trabajar con recursos de Azure Machine Learning.

También puede administrar las áreas de trabajo en Azure Portal y el SDK de Python, Azure PowerShell o a través de la extensión de VS Code.

Prerrequisitos

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, al crear un área de trabajo en la suscripción A que usa una cuenta de almacenamiento de la suscripción B, el espacio de nombres de Azure Machine Learning debe estar registrado en la suscripción B para poder usar la cuenta de almacenamiento con el área de trabajo.

    El proveedor de recursos para Azure Machine Learning es Microsoft.MachineLearningService. Para obtener información sobre cómo comprobar si está registrado y cómo realizar el registro, vea el artículo Tipos y proveedores de recursos de Azure.

    Importante

    Esta opción solo se aplica a los recursos proporcionados durante la creación del área de trabajo para cuentas de Azure Storage, el registro de contenedores de Azure, Azure Key Vault y 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, no podrá volver a crearla sin eliminar y volver a crear el área de trabajo.

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

Comunicaciones seguras de la CLI

Algunos de los CLI de Azure comandos se comunican con Azure Resource Manager a través de Internet. Esta comunicación se protege mediante HTTPS/TLS 1.2.

Con la Azure Machine Learning de la CLI 2.0 ('ml'), solo algunos de los comandos se comunican con Azure Resource Manager. Esto incluye datos operativos, como parámetros y metadatos de YAML. Si su área de trabajo de Azure Machine Learning es pública (es decir, no está detrás de una red virtual), no se requiere ninguna configuración adicional. Las comunicaciones se protegen mediante HTTPS/TLS 1.2.

Si su área de trabajo de Azure Machine Learning usa un punto de conexión privado y una red virtual y está utilizando la versión 2 de la CLI, elija una de las siguientes configuraciones para usar:

Para más información, consulte Instalación y configuración de la CLI (2.0).

Conexión de la CLI a una suscripción de Azure

Importante

Puede omitir esta sección si usa Azure Cloud Shell. Cloud Shell se autentica automáticamente mediante la cuenta con la que inicia sesión en su suscripción a Azure.

Hay varias maneras de autenticarse en la suscripción a Azure desde la CLI. La manera más simple consiste en autenticarse interactivamente a través de un explorador. Para autenticarse de forma interactiva, abra una línea de comandos o un terminal y use el siguiente comando:

az login

Si la CLI puede abrir el explorador predeterminado, lo hará y cargará una página de inicio de sesión. De lo contrario, tendrá que abrir un explorador y seguir las instrucciones de la línea de comandos. Las instrucciones implican navegar a https://aka.ms/devicelogin y escribir un código de autorización.

Sugerencia

Después de iniciar sesión, verá una lista de suscripciones asociadas con su 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 el identificador de suscripción en Azure Portal; para ello, visite la página de información general del área de trabajo.

Para seleccionar otra suscripción, utilice el comando az account set -s <subscription name or ID> y especifique el nombre o identificador de la suscripción a los que desea cambiar. Para obtener más información sobre la selección de la 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. Puede usar un grupo de recursos existente o crear uno nuevo. Utilice el comando siguiente para crear un nuevo grupo de recursos. Reemplace <resource-group-name> por el nombre que va a usar para este grupo de recursos. Reemplace <location> por la región de Azure que va a usar para este grupo de recursos:

Nota

Debe 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 <location>

La respuesta de este comando será similar al siguiente código JSON. Puede usar los valores de salida para buscar los recursos creados o analizarlos como entrada de pasos posteriores de la CLI a efectos de automatización.

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

Crear un área de trabajo

Al implementar un área de trabajo de Azure Machine Learning, se requieren otros servicios como recursos asociados dependientes. Cuando se usa la CLI para crear el área de trabajo, esta puede crear recursos asociados en su nombre o adjuntar otros existentes.

Importante

Al adjuntar su propia cuenta de almacenamiento, asegúrese de que cumple los siguientes criterios:

  • La cuenta de almacenamiento no es una cuenta prémium (Premium_LRS y Premium_GRS)
  • Las funcionalidades Azure Blob y Azure File están habilitadas
  • El espacio de nombres jerárquico (ADLS Gen 2) está deshabilitado. Estos requisitos son solo para la cuenta de almacenamiento predeterminada utilizada por el área de trabajo.

Al adjuntar un registro de contenedor de Azure, debe tener habilitada la cuenta de administrador para que se pueda usar con un área de trabajo de Azure Machine Learning.

Para crear una nueva área de trabajo en la que los servicios se creen automáticamente, use el siguiente comando:

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

Importante

Al adjuntar recursos existentes, no es necesario que los especifique todos. Puede especificar uno o varios. Por ejemplo, puede especificar una cuenta de almacenamiento existente y el área de trabajo creará los demás recursos.

La salida de este comando de creación de áreas de trabajo es similar al siguiente código JSON. Puede usar los valores de salida para buscar los recursos creados o analizarlos como entrada de pasos posteriores de la 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>"
}

Configuraciones avanzadas

Configuración de un área de trabajo para conectividad de red privada

En función de su caso de uso y de sus requisitos organizativos, puede optar por configurar Azure Machine Learning usando 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. Para obtener más información sobre el uso de un punto de conexión privado y una red virtual con el área de trabajo, vea Información general sobre la privacidad y el aislamiento de la red virtual. En el caso de configuraciones de recursos complejas, consulte también opciones de implementación basadas en plantillas, incluido Azure Resource Manager.

Cuando se usa Private Link, el área de trabajo no puede usar Azure Container Registry para la creación de imágenes de Docker. Por lo tanto, debe establecer la propiedad image_build_compute en un nombre de clúster de proceso de CPU que se usará para la creación del entorno de imágenes de Docker. También puede especificar si el área de trabajo de Private Link debe ser accesible mediante Internet con la propiedad 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

Después de crear el área de trabajo, use los comandos de la CLI de redes de Azure para crear un punto de conexión de Private Link para el área de trabajo.

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>

Para crear las entradas de la zona DNS privada 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 <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'

Clave administrada por el cliente y área de trabajo de alto impacto de negocio

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

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

Use el parámetro customer_managed_key con los parámetroskey_vault y key_uri, para especificar el Id. de recurso y el URI de la clave dentro del almacén.

Para limitar los datos que Microsoft recopila sobre su área de trabajo, puede especificar además la propiedad 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

A continuación, puede hacer referencia a este archivo de configuración como parte del comando de creación de áreas de trabajo de la CLI.

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

Nota

Autorice Aplicación de Machine Learning (en "Administración de identidades y acceso") con permisos de colaborador en la suscripción, para administrar los recursos adicionales de cifrado de datos.

Nota

Azure Cosmos DB no se usa para almacenar información como el rendimiento del modelo, la información registrada por los experimentos ni la información registrada desde las implementaciones del modelo.

Importante

La selección de un alto impacto de negocio solo puede realizarse 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 para administrar áreas de trabajo

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 la documentación de 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>

Para obtener más información, consulte la documentación de az ml workspace update.

Sincronización de claves para recursos dependientes

Si cambia las claves de acceso de uno de los recursos que usa el área de trabajo, esta 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>

Para obtener más información sobre los cambios de clave, consulte Regeneración de las claves de la cuenta de almacenamiento.

Para obtener más información sobre el comando sync-keys, consulte az ml workspace sync-keys\.

Eliminar un área de trabajo

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.

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>

Importante

La eliminación de un área de trabajo no elimina la instancia de Application Insights, la cuenta de almacenamiento, el almacén de claves ni el registro de contenedor que usa el área de trabajo.

También puede eliminar el grupo de recursos; al hacerlo, se elimina el área de trabajo y todos los demás recursos de Azure en 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 la documentación de az ml workspace delete.

Sugerencia

El comportamiento predeterminado de Azure Machine Learning es eliminar temporalmente el área de trabajo. Esto significa que 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.

Solución de problemas

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.

Movimiento del área de trabajo

Advertencia

No se admite mover el área de trabajo de Azure Machine Learning a otra suscripción ni mover la suscripción propietaria a un nuevo inquilino. Si lo hace, pueden producirse errores.

Eliminación de la instancia de Azure Container Registry

El área de trabajo de Azure Machine Learning usa Azure Container Registry (ACR) para algunas operaciones. La primera vez que se necesite una instancia de ACR, se creará automáticamente.

Advertencia

Cuando se ha creado una instancia de Azure Container Registry para un área de trabajo, no la elimine. Si lo hace, se interrumpirá el área de trabajo de Azure Machine Learning.

Pasos siguientes

Para obtener más información sobre la extensión de la CLI de Azure para aprendizaje automático, consulte la documentación de az ml.

Para comprobar si hay problemas con el área de trabajo, vea Uso de diagnósticos del área de trabajo.

Para obtener información sobre cómo mover un área de trabajo a una nueva suscripción de Azure, consulte Traslado de un á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.