Gestire le aree di lavoro di Azure Machine Learning con l'interfaccia della riga di comando di Azure

SI APPLICA A:estensione ml dell'interfaccia della riga di comando di Azure v2 (corrente)

Questo articolo illustra come creare e gestire aree di lavoro di Azure Machine Learning usando l'interfaccia della riga di comando di Azure. L'interfaccia della riga di comando di Azure fornisce comandi per la gestione delle risorse di Azure ed è progettata per iniziare rapidamente a usare Azure, con particolare attenzione all'automazione. L'estensione Machine Learning dell’interfaccia della riga di comando fornisce i comandi per l'uso delle risorse di Azure Machine Learning.

È anche possibile gestire le aree di lavoro anche tramite il portale di Azure e l'SDK Python, Azure PowerShell o l'estensione VS Code.

Prerequisiti

  • Una sottoscrizione di Azure. Se non è disponibile, provare la versione gratuita o a pagamento di Azure Machine Learning.

  • Per usare i comandi dell'interfaccia della riga di comando in questo documento dall'ambiente locale, è necessaria l'interfaccia della riga di comando di Azure.

    Se si usa Azure Cloud Shell, l'interfaccia della riga di comando è accessibile tramite il browser e si trova nel cloud.

Limiti

  • Quando si crea una nuova area di lavoro, è possibile creare automaticamente i servizi necessari per l'area di lavoro o usare i servizi esistenti. Se si vogliono usare i servizi esistenti da una sottoscrizione di Azure diversa rispetto all'area di lavoro, è necessario registrare lo spazio dei nomi di Azure Machine Learning nella sottoscrizione che contiene tali servizi. Ad esempio, se si crea un'area di lavoro nella sottoscrizione A che usa un account di archiviazione dalla sottoscrizione B, lo spazio dei nomi di Azure Machine Learning deve essere registrato nella sottoscrizione B prima di poter usare l'account di archiviazione con l'area di lavoro.

    Il provider di risorse per Azure Machine Learning è Microsoft.MachineLearningServices. Per informazioni su come verificare se è registrato e come registrarlo, vedere l'articolo Provider e tipi di risorse di Azure.

    Importante

    Questo vale solo per le risorse fornite durante la creazione dell'area di lavoro: Account di Archiviazione di Azure, Registro Azure Container, Azure Key Vault e Application Insights.

Suggerimento

Quando si crea l'area di lavoro, viene creata un'istanza di Azure Application Insights. Se necessario, è possibile eliminare l'istanza di Application Insights dopo la creazione del cluster. L'eliminazione limita le informazioni raccolte dall'area di lavoro e può rendere più difficile la risoluzione dei problemi. Se si elimina l'istanza di Application Insights creata dall'area di lavoro, non è possibile ricrearla senza eliminare e ricreare l'area di lavoro.

Per altre informazioni sull'uso di questa istanza di Application Insights, vedere Monitorare e raccogliere dati dagli endpoint servizio Web di Machine Learning.

Proteggere le comunicazioni dell'interfaccia della riga di comando

Alcuni dei comandi dell'interfaccia della riga di comando di Azure comunicano con Azure Resource Manager tramite Internet. Questa comunicazione è protetta tramite HTTPS/TLS 1.2.

Con l'estensione dell'interfaccia della riga di comando di Azure Machine Learning v2 ('ml'), tutti i comandi comunicano con Azure Resource Manager. Sono inclusi i dati operativi, ad esempio i parametri YAML e i metadati. Se l'area di lavoro di Azure Machine Learning è pubblica (ovvero non è dietro una rete virtuale), non è necessaria alcuna configurazione aggiuntiva. Le comunicazioni vengono protette tramite HTTPS/TLS 1.2.

Se l'area di lavoro di Azure Machine Learning usa un endpoint privato e una rete virtuale e si usa l'interfaccia della riga di comando v2, scegliere una delle seguenti configurazioni da usare:

Per altre informazioni sulla comunicazione dell'interfaccia della riga di comando v2, vedere Installare e configurare l'interfaccia della riga di comando.

Connettere l'interfaccia della riga di comando alla sottoscrizione di Azure

Importante

Se si usa Azure Cloud Shell, è possibile ignorare questa sezione. Cloud Shell esegue automaticamente l'autenticazione con l'account usato per accedere alla sottoscrizione di Azure.

È possibile eseguire l'autenticazione della sottoscrizione di Azure dall'interfaccia della riga di comando in diversi modi. Quello più semplice consiste nell'eseguire l'autenticazione interattiva tramite un browser. Per eseguire l'autenticazione in modo interattivo, aprire una riga di comando o un terminale e usare il comando seguente:

az login

Se l'interfaccia della riga di comando può aprire il browser predefinito, eseguirà questa operazione e caricherà una pagina di accesso. In caso contrario, è necessario aprire un browser e seguire le istruzioni nella riga di comando. Le istruzioni prevedono l'individuazione di https://aka.ms/devicelogin e l'immissione di un codice di autorizzazione.

Suggerimento

Dopo l'accesso, viene visualizzato un elenco di sottoscrizioni associate all'account Azure. Le informazioni della sottoscrizione con isDefault: true rappresentano la sottoscrizione attualmente attivata per i comandi dell’interfaccia della riga di comando di Azure. Questa sottoscrizione deve corrispondere a quella che contiene l'area di lavoro Azure Machine Learning. È possibile trovare l'ID sottoscrizione dal portale di Azure visitando la pagina di panoramica dell'area di lavoro.

Per selezionare un'altra sottoscrizione, usare il comando az account set -s <subscription name or ID> e specificare il nome o l'ID sottoscrizione a cui passare. Per altre informazioni sulla selezione delle sottoscrizioni, vedere Usare più sottoscrizioni di Azure.

Per altri metodi di autenticazione, vedere Accedere con l'interfaccia della riga di comando di Azure.

Creare un gruppo di risorse

L’area di lavoro di Azure Machine Learning deve essere creata all'interno di un gruppo di risorse. È possibile usare un gruppo di risorse esistente o crearne uno nuovo. Per creare un nuovo gruppo di risorse, usare il comando seguente. Sostituire <resource-group-name> con il nome da usare per questo gruppo di risorse. Sostituire <location> con l'area di Azure da usare per questo gruppo di risorse:

Nota

È necessario selezionare un'area in cui è disponibile Azure Machine Learning. Per informazioni, vedere Prodotti disponibili in base all'area.

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

La risposta di questo comando è simile al codice JSON seguente. È possibile usare i valori di output per individuare le risorse create o analizzarle come input per i passaggi successivi dell'interfaccia della riga di comando per l'automazione.

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

Per altre informazioni sull'uso dei gruppi di risorse, vedere az group.

Creare un'area di lavoro

Quando si distribuisce un'area di lavoro di Azure Machine Learning, vari altri servizi sono necessari come risorse associate dipendenti. Quando si usa l'interfaccia della riga di comando per creare l'area di lavoro, l'interfaccia della riga di comando può creare nuove risorse associate per conto dell'utente oppure collegare risorse esistenti.

Importante

Quando si collega un account di archiviazione personalizzato, assicurarsi che soddisfi i criteri seguenti:

  • L'account di archiviazione non è un account Premium (Premium_LRS e Premium_GRS)
  • Funzionalità BLOB di Azure e File di Azure abilitate
  • Lo spazio dei nomi gerarchico (ADLS Gen 2) è disabilitato Questi requisiti sono solo per l'account di archiviazione predefinito usato dall'area di lavoro.

Quando si collega registro contenitori di Azure è necessario avere abilitato l'account amministratore prima di poterlo usare con un'area di lavoro di Azure Machine Learning.

Per creare una nuova area di lavoro in cui i servizi vengono creati automaticamente, utilizzare il comando seguente:

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

Importante

Quando si collegano risorse esistenti, non è necessario specificare tutto. È sufficiente specificarne minimo una. Ad esempio, è possibile specificare un account di archiviazione esistente e l'area di lavoro creerà le altre risorse.

L'output del comando di creazione dell'area di lavoro è simile al codice JSON seguente. È possibile usare i valori di output per individuare le risorse create o analizzarle come input per i passaggi successivi dell'interfaccia della riga di comando.

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

Configurazioni avanzate

Configurare l'area di lavoro per la connettività di rete privata

A seconda del caso d'uso e dei requisiti dell'organizzazione, è possibile scegliere di configurare Azure Machine Learning usando la connettività di rete privata. È possibile usare l'interfaccia della riga di comando di Azure per distribuire un'area di lavoro e un endpoint di collegamento privato per la risorsa dell'area di lavoro. Per altre informazioni sull'uso di un endpoint privato e di una rete virtuale (VNet) con l'area di lavoro, vedere Panoramica dell'isolamento della rete virtuale e della privacy. Per configurazioni di risorse complesse, vedere anche le opzioni di distribuzione basate su modelli, tra cui Azure Resource Manager.

Quando si usa un collegamento privato, l'area di lavoro non può usare Registro Azure Container per creare immagini Docker. Di conseguenza, è necessario impostare la proprietà image_build_compute su un nome di cluster di elaborazione della CPU da usare per la creazione dell'ambiente di immagini Docker. È anche possibile specificare se l'area di lavoro del collegamento privato deve essere accessibile via Internet usando la proprietà 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

Dopo aver creato l'area di lavoro, usare i comandi dell'interfaccia della riga di comando di rete di Azure per creare un endpoint di collegamento privato per l'area di lavoro.

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>

Per creare le voci della zona DNS privata per l'area di lavoro, usare i comandi seguenti:

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

Chiave gestita dal cliente e area di lavoro ad alto impatto aziendale

Per impostazione predefinita, i metadati per l'area di lavoro vengono archiviati in un'istanza di Azure Cosmos DB gestita da Microsoft. Questi dati vengono crittografati usando chiavi gestite da Microsoft. Anziché usare la chiave gestita da Microsoft, è anche possibile fornire la propria chiave. In questo modo viene creato un set aggiuntivo di risorse nella sottoscrizione di Azure per archiviare i dati.

Per altre informazioni sulle risorse create quando si usa la propria chiave per la crittografia, vedere Crittografia dei dati con Azure Machine Learning.

Usare il parametro customer_managed_key e contenente i parametri key_vault e key_uri, per specificare l'ID risorsa e l'URI della chiave all'interno dell'insieme di credenziali.

Per limitare i dati raccolti da Microsoft nell'area di lavoro, è anche possibile specificare la proprietà 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

È quindi possibile fare riferimento a questo file di configurazione come parte del comando dell'interfaccia della riga di comando per la creazione dell'area di lavoro.

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

Nota

Autorizzare l'app di Machine Learning (in Gestione delle identità e degli accessi) con autorizzazioni di collaboratore per la sottoscrizione per gestire le risorse aggiuntive per la crittografia dei dati.

Nota

Azure Cosmos DB non viene usato per archiviare informazioni quali prestazioni del modello, informazioni registrate da esperimenti o informazioni registrate dalle distribuzioni del modello.

Importante

La selezione di un impatto aziendale elevato può essere eseguita solo quando si crea un'area di lavoro. Non è possibile modificare questa impostazione dopo la creazione dell'area di lavoro.

Per altre informazioni sulle chiavi gestite dal cliente e sull'area di lavoro ad alto impatto aziendale, vedere Sicurezza aziendale per Azure Machine Learning.

Uso dell'interfaccia della riga di comando per gestire le aree di lavoro

Ottenere informazioni sull’area di lavoro

Per ottenere informazioni su un'area di lavoro, usare il comando seguente:

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

Per altre informazioni, vedere la documentazione sulla visualizzazione dell’area di lavoro di Azure Machine Learning.

Aggiornare un’area di lavoro

Per aggiornare un’area di lavoro, usare il comando seguente:

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

Per altre informazioni, vedere la documentazione sull’aggiornamento dell’area di lavoro di Azure Machine Learning.

Sincronizzare le chiavi per le risorse dipendenti

Se si modificano le chiavi di accesso per una delle risorse usate dall'area di lavoro, la sincronizzazione dell'area di lavoro con la nuova chiave richiederà circa un'ora. Per forzare l'area di lavoro a sincronizzare immediatamente le nuove chiavi, usare il comando seguente:

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

Per altre informazioni sulla modifica delle chiavi, vedere Rigenerare le chiavi di accesso alle risorse di archiviazione.

Per altre informazioni sul comando sync-keys, vedere az ml workspace sync-keys.

Eliminazione di un'area di lavoro

Avviso

Se l'eliminazione temporanea è abilitata per l'area di lavoro, può essere ripristinata dopo l'eliminazione. Se l'eliminazione temporanea non è abilitata o si seleziona l'opzione per eliminare definitivamente l'area di lavoro, non è possibile recuperarla. Per altre informazioni, vedere Ripristinare un'area di lavoro eliminata.

Per eliminare un'area di lavoro dopo che non è più necessaria, usare il comando seguente:

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

Importante

L'eliminazione di un'area di lavoro non comporta l'eliminazione di Application Insights, dell'account di archiviazione, dell'insieme di credenziali delle chiavi o del registro contenitori usati dall'area di lavoro.

È anche possibile eliminare il gruppo di risorse che comporta l’eliminazione dell’area di lavoro e di tutte le altre risorse di Azure contenute al suo interno. Per eliminare il gruppo di risorse, usare il comando seguente:

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

Per altre informazioni, vedere la documentazione sull’eliminazione dell’area di lavoro di Azure Machine Learning.

Suggerimento

Il comportamento predefinito per Azure Machine Learning consiste nell'usare l'eliminazione temporanea dell'area di lavoro. Ciò significa che l'area di lavoro non viene eliminata immediatamente, ma viene invece contrassegnata per l'eliminazione. Per altre informazioni, vedere Eliminazione temporanea.

Risoluzione dei problemi

Errori del provider di risorse

Quando si crea un'area di lavoro di Azure Machine Learning o una risorsa usata dall'area di lavoro, è possibile che venga visualizzato un errore simile ai messaggi seguenti:

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

Molti provider di risorse vengono registrati automaticamente, ma non tutti. Se si riceve questo messaggio, è necessario registrare il provider indicato.

La tabella seguente contiene un elenco dei provider di risorse richiesti da Azure Machine Learning:

Provider di risorse Perché è necessario
Microsoft.MachineLearningServices Creazione dell'area di lavoro di Azure Machine Learning.
Microsoft.Storage L'account di Archiviazione di Azure viene usato come risorsa di archiviazione predefinita per l'area di lavoro.
Microsoft.ContainerRegistry Registro Azure Container viene usato dall'area di lavoro per compilare immagini Docker.
Microsoft.KeyVault Azure Key Vault viene usato dall'area di lavoro per archiviare i segreti.
Microsoft.Notebooks Notebook integrati nell'istanza di calcolo di Azure Machine Learning.
Microsoft.ContainerService Se si prevede di distribuire modelli sottoposti a training nei servizi Azure Kubernetes.

Se si prevede di usare una chiave gestita dal cliente con Azure Machine Learning, è necessario registrare i provider di servizi seguenti:

Provider di risorse Perché è necessario
Microsoft.DocumentDB Istanza di Azure CosmosDB che registra i metadati per l'area di lavoro.
Microsoft.Search Ricerca di Azure offre funzionalità di indicizzazione per l'area di lavoro.

Se si prevede di usare una rete virtuale gestita con Azure Machine Learning, è necessario registrare il provider di risorse Microsoft.Network. Questo provider di risorse viene usato dall'area di lavoro quando si creano endpoint privati per la rete virtuale gestita.

Per informazioni sulla registrazione dei provider di risorse, vedere Risoluzione degli errori di registrazione del provider di risorse.

Spostamento dell'area di lavoro

Avviso

Lo spostamento dell’area di lavoro di Azure Machine Learning in una diversa sottoscrizione o della sottoscrizione proprietaria su un nuovo tenant non è supportato in quanto ciò può provocare errori.

Eliminazione del Registro Azure Container

L'area di lavoro di Azure Machine Learning usa il Registro Azure Container (ACR) per alcune operazioni. Verrà creata automaticamente un'istanza di ACR quando è necessaria per la prima volta.

Avviso

Dopo aver creato un'istanza di Registro Azure Container per un'area di lavoro, non eliminarla. In caso contrario, l'area di lavoro di Azure Machine Learning verrà terminata.

Passaggi successivi

Per altre informazioni sull'estensione dell'interfaccia della riga di comando di Azure per Machine Learning, vedere la documentazione di Azure Machine Learning.

Per verificare la presenza di problemi con l'area di lavoro, vedere Come usare la diagnostica dell'area di lavoro.

Per informazioni su come spostare un'area di lavoro in una nuova sottoscrizione di Azure, vedere Come spostare un'area di lavoro.

Per informazioni su come mantenere aggiornato Azure Machine Learning con gli aggiornamenti della sicurezza più recenti, vedere Gestione delle vulnerabilità.