Condividi tramite


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 di Azure fornisce i comandi per l'uso delle risorse di Azure Machine Learning.

È anche possibile usare i metodi seguenti per creare e gestire aree di lavoro di Azure Machine Learning:

Prerequisiti

  • Una sottoscrizione di Azure con una versione gratuita o a pagamento di Azure Machine Learning. Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

  • Interfaccia della riga di comando di Azure installata, se si vogliono eseguire i comandi dell'interfaccia della riga di comando di Azure in questo articolo in locale.

    Se si eseguono i comandi dell'interfaccia della riga di comando di Azure in Azure Cloud Shell, non è necessario installare nulla. Il browser accede alla versione cloud più recente dell'interfaccia della riga di comando di Azure e all'estensione Azure Machine Learning.

Limiti

  • Quando si crea una nuova area di lavoro, è possibile creare automaticamente i servizi necessari o usare quelli servizi esistenti. Se si vogliono usare i servizi esistenti di 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 nella sottoscrizione B, lo spazio dei nomi di Azure Machine Learning deve essere registrato nella sottoscrizione B prima che sia possibile usare l'account di archiviazione con l'area di lavoro.

    Il provider di risorse per Azure Machine Learning è Microsoft.MachineLearningServices. Per informazioni sulla registrazione effettuata o da effettuare, vedere Provider di risorse e tipi 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.

Connettersi alla sottoscrizione di Azure

Se si usa Azure Cloud Shell dal portale di Azure, è possibile ignorare questa sezione. Cloud Shell autentica automaticamente l'utente usando la sottoscrizione di Azure con cui si è connessi.

Esistono diversi modi per eseguire l'autenticazione in locale nella sottoscrizione di Azure dall'interfaccia della riga di comando di Azure. Il modo più semplice consiste nell'usare un browser.

Per eseguire l'autenticazione in modo interattivo, aprire una riga di comando o un terminale ed eseguire 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, seguire le istruzioni della riga di comando per aprire un browser per https://aka.ms/devicelogin e immettere un codice di autorizzazione del dispositivo.

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 le informazioni sulla sottoscrizione nella pagina di panoramica per l'area di lavoro nel portale di Azure.

Per selezionare un'altra sottoscrizione da usare per i comandi dell'interfaccia della riga di comando di Azure, usare il comando az account set -s <subscription> 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 nuovo o esistente. Per creare un nuovo gruppo di risorse, eseguire il comando seguente. Sostituire <resource-group-name> con il nome e <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 <azure-region>

La risposta a questo comando è simile al codice JSON seguente. È possibile usare i valori di output per individuare le risorse create o analizzarle come input per gli altri comandi dell'interfaccia della riga di comando di Azure 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

Un'area di lavoro di Azure Machine Learning distribuita richiede diversi altri servizi, come risorse associate dipendenti. Quando si usa l'interfaccia della riga di comando di Azure per creare l'area di lavoro, l'interfaccia della riga di comando può creare nuove risorse associate oppure collegare risorse esistenti.

Per creare una nuova area di lavoro con nuovi servizi dipendenti creati automaticamente, eseguire il comando seguente:

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

Per creare una nuova area di lavoro che usa risorse esistenti, è prima necessario definire le risorse in un file di configurazione YAML, come descritto nella sezione seguente. Quindi si fa riferimento al file YAML nel comando di creazione dell'area di lavoro dell'interfaccia della riga di comando di Azure come indicato di seguito:

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

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 gli altri comandi dell'interfaccia della riga di comando di 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>"
}

File di configurazione YAML

Per usare le risorse esistenti per una nuova area di lavoro, definire le risorse in un file di configurazione YAML. L'esempio seguente mostra un file di configurazione dell'area di lavoro 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

Non è necessario specificare tutte le risorse dipendenti associate nel file di configurazione. È possibile specificare una o più risorse e consentire la creazione automatica delle altre.

È necessario specificare gli ID per le risorse esistenti nel file YAML. È possibile ottenere questi ID visualizzando la risorsa Proprietà nel portale di Azure oppure eseguendo i comandi seguenti dell'interfaccia della riga di comando di Azure:

  • Azure Application Insights:
    az monitor app-insights component show --app <application-insight-name> -g <resource-group-name> --query "id"
  • Registro Azure Container:
    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"
  • Account di Archiviazione di Azure:
    az storage account show --name <storage-account-name> --query "id"

I risultati della query sono simili alla stringa seguente:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Risorse dipendenti associate

Le considerazioni e le limitazioni seguenti si applicano alle risorse dipendenti associate alle aree di lavoro.

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, l'unico modo per ricrearla consiste nell'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.

Registro Container

L'area di lavoro di Azure Machine Learning usa Registro Azure Container per alcune operazioni e crea automaticamente un'istanza di Registro Container quando ne necessita 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.

Per usare un Registro Azure Container esistente con un'area di lavoro di Azure Machine Learning, è necessario abilitare l'account amministratore nel registro Container.

Account di archiviazione

Se si usa un account di archiviazione esistente per l'area di lavoro, deve soddisfare i criteri seguenti. Questi requisiti si applicano solo all'account di archiviazione predefinito.

  • L'account non può essere Premium_LRS o Premium_GRS.
  • Le funzionalità BLOB di Azure e File di Azure devono essere entrambe abilitate.
  • Lo spazio dei nomi gerarchico deve essere disabilitato per Azure Data Lake Storage.

Proteggere le comunicazioni dell'interfaccia della riga di comando di Azure

Tutti i comandi az ml di Azure Machine Learning V2 comunicano i dati operativi, ad esempio i parametri e i metadati YAML, ad Azure Resource Manager. Alcuni dei comandi dell'interfaccia della riga di comando di Azure comunicano con Azure Resource Manager tramite Internet.

Se l'area di lavoro di Azure Machine Learning è pubblica e non si trova dietro una rete virtuale, le comunicazioni vengono protette tramite HTTPS/TLS 1.2. Non è necessaria alcuna configurazione aggiuntiva.

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

  • Per comunicare tramite Internet pubblico, impostare il parametro --public-network-access su Enabled.

  • Per evitare di comunicare tramite Internet pubblico per motivi di sicurezza, configurare Azure Machine Learning per l'uso della connettività di rete privata con un endpoint collegamento privato di Azure, come descritto nella sezione seguente.

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.

Se si usano endpoint di collegamento privato sia per Registro Azure Container che per Azure Machine Learning, non è possibile usare le attività del Registro Azure Container per compilare immagini dell'ambiente Docker. È invece necessario compilare immagini usando un cluster di elaborazione di Azure Machine Learning.

Nel file di configurazione dell'area di lavoro YAML è necessario impostare la proprietà image_build_compute su un nome del cluster di calcolo da usare per la compilazione dell'ambiente di immagini Docker. È anche possibile specificare che l'area di lavoro di collegamento privato non è accessibile tramite Internet impostando la proprietà public_network_access su Disabled.

Il codice seguente mostra un file di configurazione dell'area di lavoro di esempio per la connettività di rete privata.

$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

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

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>

Per creare le voci della zona DNS privato 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 <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'

Per altre informazioni sull'uso di un endpoint privato e di una rete virtuale con l'area di lavoro, vedere gli articoli seguenti:

È possibile usare il processo seguente per proteggere le comunicazioni con tutte le risorse di Azure Resource Manager in un gruppo di gestione di Azure usando il collegamento privato:

  1. Creare un collegamento privato per la gestione delle risorse di Azure.
  2. Creare un endpoint privato per il collegamento privato creato nel passaggio precedente.

Importante

Per configurare un collegamento privato per Azure Resource Manager, è necessario essere il Proprietario della sottoscrizione di Azure e un Proprietario o Collaboratore nel gruppo di gestione radice. Per altre informazioni, vedere Creare un collegamento privato per la gestione delle risorse di Azure.

Configurazioni avanzate

Esistono diverse altre configurazioni avanzate che è possibile applicare alle aree di lavoro. Per configurazioni di risorse complesse, vedere anche le opzioni di distribuzione basate su modelli, tra cui Azure Resource Manager.

Chiavi gestite dal cliente

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

Nota

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

Per creare un'area di lavoro che usa la propria chiave, usare il parametro customer_managed_key nel file di configurazione dell'area di lavoro YAML e specificare l'ID risorsa di key_vault contenitore e il key_uri della chiave all'interno dell'insieme di credenziali.

$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

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

Nota

Per gestire le risorse di crittografia dei dati aggiunte, usare Gestione identità e accesso per autorizzare l'app di Machine Learning con le autorizzazioni Collaboratore per la sottoscrizione.

Aree di lavoro ad alto impatto aziendale

Per limitare i dati raccolti da Microsoft nell'area di lavoro, è possibile specificare un'area di lavoro a impatto aziendale elevato impostando la proprietà hbi_workspace nel file di configurazione YAML su TRUE. È possibile impostare un impatto aziendale elevato 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.

Usare l'interfaccia della riga di comando di Azure per gestire le aree di lavoro

È possibile usare i comandi az ml workspace 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 az ml workspace show.

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>

Ad esempio, il comando seguente aggiorna un'area di lavoro per abilitare l'accesso alla rete pubblica:

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

Per altre informazioni, vedere az ml workspace update.

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 le nuove chiavi 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>

Spostare un'area di lavoro

Lo spostamento di un'area di lavoro di Azure Machine Learning è attualmente in anteprima. Per altre informazioni, vedere Spostare aree di lavoro di Azure Machine Learning tra sottoscrizioni (anteprima).

Eliminazione di un'area di lavoro

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>

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

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.

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. Per eliminare l'area di lavoro, le risorse dipendenti e tutte le altre risorse di Azure nel gruppo di risorse, è possibile eliminare il gruppo di risorse. Per eliminare il gruppo di risorse, usare il comando seguente:

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

Per altre informazioni, vedere az ml workspace delete.

Risolvere gli errori relativi al 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 ambiente 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 cognitiva 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.