Gestire le aree di lavoro di Azure Machine Learning con Python SDK (v1)

SI APPLICA A:Python SDK azureml v1

Questo articolo illustra come creare, visualizzare ed eliminare aree di lavoro di Azure Machine Learning per Azure Machine Learning usando l'SDK per Python.

Man mano che le esigenze cambiano o requisiti per l'automazione, è anche possibile gestire le aree di lavoro usando l'interfaccia della riga di comando o tramite l'estensione VS Code.

Prerequisiti

Limitazioni

  • 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 da quella dell'area di lavoro, è necessario registrare lo spazio dei nomi di Azure Machine Learning nella sottoscrizione che contiene tali servizi. Ad esempio, la creazione di 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.

  • Per impostazione predefinita, la creazione di un'area di lavoro crea anche un Registro Azure Container ( Registro Azure Container). Poiché Registro Azure Container non supporta attualmente i caratteri Unicode nei nomi dei gruppi di risorse, usare un gruppo di risorse che non contiene questi caratteri.

  • Azure Machine Learning non supporta lo spazio dei nomi gerarchico (funzionalità Azure Data Lake Storage Gen2) per l'account di archiviazione predefinito dell'area di lavoro.

Suggerimento

Quando si crea l'area di lavoro, viene creata un'istanza di Applicazione Azure Insights. È possibile eliminare l'istanza di Application Insights dopo la creazione del cluster, se necessario. 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 del servizio Web di Machine Learning.

Creare un'area di lavoro

È possibile creare un'area di lavoro direttamente in studio di Azure Machine Learning, con opzioni limitate disponibili. In alternativa, usare uno dei metodi seguenti per un maggiore controllo delle opzioni.

  • Specifica predefinita. Per impostazione predefinita, le risorse dipendenti e il gruppo di risorse verranno creati automaticamente. Questo codice crea un'area di lavoro denominata myworkspace e un gruppo di risorse denominato myresourcegroup in eastus2.

    SI APPLICA A:Python SDK azureml v1

    from azureml.core import Workspace
    
    ws = Workspace.create(name='myworkspace',
                   subscription_id='<azure-subscription-id>',
                   resource_group='myresourcegroup',
                   create_resource_group=True,
                   location='eastus2'
                   )
    

    Impostare su create_resource_group False se si ha un gruppo di risorse di Azure esistente che si vuole usare per l'area di lavoro.

  • Più tenant. Se si hanno più account, aggiungere l'ID tenant di Azure Active Directory che si vuole usare. Trovare l'ID tenant dal portale di Azure in Azure Active Directory, Identità esterne.

    SI APPLICA A:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Cloud sovrano. Se si lavora in un cloud sovrano, è necessario codice aggiuntivo per l'autenticazione in Azure.

    SI APPLICA A:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.create(name='myworkspace',
                subscription_id='<azure-subscription-id>',
                resource_group='myresourcegroup',
                create_resource_group=True,
                location='eastus2',
                auth=interactive_auth
                )
    
  • Usare le risorse di Azure esistenti. È anche possibile creare un'area di lavoro che usa le risorse di Azure esistenti con il formato ID risorsa di Azure. Trovare gli ID risorsa di Azure specifici nel portale di Azure o con l'SDK. Questo esempio presuppone che il gruppo di risorse, l'account di archiviazione, l'insieme di credenziali delle chiavi, App Insights e il registro contenitori esistano già.

    SI APPLICA A:Python SDK azureml v1

    import os
    from azureml.core import Workspace
    from azureml.core.authentication import ServicePrincipalAuthentication
    
    service_principal_password = os.environ.get("AZUREML_PASSWORD")
    
    service_principal_auth = ServicePrincipalAuthentication(
        tenant_id="<tenant-id>",
        username="<application-id>",
        password=service_principal_password)
    
                          auth=service_principal_auth,
                               subscription_id='<azure-subscription-id>',
                               resource_group='myresourcegroup',
                               create_resource_group=False,
                               location='eastus2',
                               friendly_name='My workspace',
                               storage_account='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.storage/storageaccounts/mystorageaccount',
                               key_vault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/mykeyvault',
                               app_insights='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.insights/components/myappinsights',
                               container_registry='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.containerregistry/registries/mycontainerregistry',
                               exist_ok=False)
    

Per altre informazioni, vedere Informazioni di riferimento sull'SDK dell'area di lavoro.

Se si verificano problemi durante l'accesso alla sottoscrizione, vedere Configurare l'autenticazione per risorse e flussi di lavoro di Azure Machine Learning, nonché l'autenticazione nel notebook di Azure Machine Learning .

Rete

Importante

Per altre informazioni sull'uso di un endpoint privato e di una rete virtuale con l'area di lavoro, vedere Isolamento della rete e privacy.

Azure Machine Learning Python SDK fornisce la classe PrivateEndpointConfig , che può essere usata con Workspace.create() per creare un'area di lavoro con un endpoint privato. Questa classe richiede una rete virtuale esistente.

Avanzato

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.

Per limitare i dati raccolti da Microsoft nell'area di lavoro, selezionare Area di lavoro a impatto aziendale elevato nel portale o impostata hbi_workspace=true in Python. Per altre informazioni su questa impostazione, vedere Crittografia dei dati inattivi.

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.

Usare la propria chiave di crittografia dei dati

È possibile fornire la propria chiave per la crittografia dei dati. In questo modo viene creata l'istanza di Azure Cosmos DB che archivia i metadati nella sottoscrizione di Azure. Per altre informazioni, vedere Chiavi gestite dal cliente per Azure Machine Learning.

Per specificare la propria chiave, seguire questa procedura:

Importante

Prima di seguire questa procedura, è necessario eseguire le azioni seguenti:

Seguire la procedura descritta in Configurare le chiavi gestite dal cliente per:

  • Registrare il provider Azure Cosmos DB
  • Creare e configurare un insieme di credenziali delle chiavi di Azure
  • Generare una chiave

Usare cmk_keyvault e resource_cmk_uri per specificare la chiave gestita dal cliente.

from azureml.core import Workspace
   ws = Workspace.create(name='myworkspace',
               subscription_id='<azure-subscription-id>',
               resource_group='myresourcegroup',
               create_resource_group=True,
               location='eastus2'
               cmk_keyvault='subscriptions/<azure-subscription-id>/resourcegroups/myresourcegroup/providers/microsoft.keyvault/vaults/<keyvault-name>', 
               resource_cmk_uri='<key-identifier>'
               )

Scaricare un file di configurazione

Se si usa un'istanza di calcolo nell'area di lavoro per eseguire il codice, ignorare questo passaggio. L'istanza di calcolo creerà e archivierà automaticamente una copia di questo file.

Se si prevede di usare il codice nell'ambiente locale che fa riferimento a questa area di lavoro (ws), scrivere il file di configurazione:

SI APPLICA A:Python SDK azureml v1

ws.write_config()

Inserire il file nella struttura di directory con gli script Python o i notebook di Jupyter. Può trattarsi della stessa directory, in una sottodirectory denominata .azureml o in una directory padre. Quando si crea un'istanza di calcolo, questo file viene aggiunto alla directory corretta nella macchina virtuale.

Connettersi a un'area di lavoro

Nel codice Python si crea un oggetto area di lavoro per connettersi all'area di lavoro. Questo codice leggerà il contenuto del file di configurazione per trovare l'area di lavoro. Se non si è già autenticati, verrà visualizzato un prompt per l'accesso.

SI APPLICA A:Python SDK azureml v1

from azureml.core import Workspace

ws = Workspace.from_config()
  • Più tenant. Se si hanno più account, aggiungere l'ID tenant di Azure Active Directory che si vuole usare. Trovare l'ID tenant dal portale di Azure in Azure Active Directory, Identità esterne.

    SI APPLICA A:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(tenant_id="my-tenant-id")
    ws = Workspace.from_config(auth=interactive_auth)
    
  • Cloud sovrano. Se si lavora in un cloud sovrano, è necessario codice aggiuntivo per l'autenticazione in Azure.

    SI APPLICA A:Python SDK azureml v1

    from azureml.core.authentication import InteractiveLoginAuthentication
    from azureml.core import Workspace
    
    interactive_auth = InteractiveLoginAuthentication(cloud="<cloud name>") # for example, cloud="AzureUSGovernment"
    ws = Workspace.from_config(auth=interactive_auth)
    

Se si verificano problemi durante l'accesso alla sottoscrizione, vedere Configurare l'autenticazione per risorse e flussi di lavoro di Azure Machine Learning, nonché l'autenticazione nel notebook di Azure Machine Learning .

Trovare un'area di lavoro

Vedere un elenco di tutte le aree di lavoro che è possibile usare.

Trovare le sottoscrizioni nella pagina Sottoscrizioni nella portale di Azure. Copiare l'ID e usarlo nel codice seguente per visualizzare tutte le aree di lavoro disponibili per tale sottoscrizione.

SI APPLICA A:Azureml di Python SDK v1

from azureml.core import Workspace

Workspace.list('<subscription-id>')

Il metodo Workspace.list(..) non restituisce l'oggetto area di lavoro completo. Include solo informazioni di base sulle aree di lavoro esistenti nella sottoscrizione. Per ottenere un oggetto completo per un'area di lavoro specifica, usare Workspace.get(.).

Eliminazione di un'area di lavoro

Quando non è più necessaria un'area di lavoro, eliminarla.

Avviso

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

Se l'area di lavoro è stata eliminata accidentalmente, è comunque possibile recuperare i notebook. Per informazioni dettagliate, vedere Failover per continuità aziendale e ripristino di emergenza.

Eliminare l'area di lavoro ws:

SI APPLICA A:Azureml di Python SDK v1

ws.delete(delete_dependent_resources=False, no_wait=False)

L'azione predefinita non consiste nell'eliminare le risorse associate all'area di lavoro, ovvero il Registro contenitori, l'account di archiviazione, l'insieme di credenziali delle chiavi e le informazioni dettagliate sulle applicazioni. Impostare su delete_dependent_resources True per eliminare queste risorse.

Pulire le risorse

Importante

Le risorse create possono essere usate come prerequisiti per altre esercitazioni e procedure dettagliate per Azure Machine Learning.

Se non si prevede di usare alcuna delle risorse create, eliminarle in modo da non comportare addebiti:

  1. Nel portale di Azure fare clic su Gruppi di risorse all'estrema sinistra.

  2. Nell'elenco selezionare il gruppo di risorse creato.

  3. Selezionare Elimina gruppo di risorse.

    Screenshot delle opzioni da selezionare per eliminare un gruppo di risorse nel portale di Azure.

  4. Immettere il nome del gruppo di risorse. Selezionare Elimina.

Risoluzione dei problemi

  • Browser supportati in studio di Azure Machine Learning: è consigliabile usare il browser più aggiornato compatibile con il sistema operativo. Sono supportati i browser seguenti:

    • Microsoft Edge (nuova versione di Microsoft Edge, versione più recente. Non microsoft Edge legacy)
    • Safari (versione più recente, solo Mac)
    • Chrome (versione più recente)
    • Firefox (versione più recente)
  • portale di Azure:

    • Se si passa direttamente all'area di lavoro da un collegamento di condivisione dall'SDK o dal portale di Azure, non è possibile visualizzare la pagina Panoramica standard con informazioni sulla sottoscrizione nell'estensione. In questo scenario non è anche possibile passare a un'altra area di lavoro. Per visualizzare un'altra area di lavoro, passare direttamente a studio di Azure Machine Learning e cercare il nome dell'area di lavoro.
    • Tutti gli asset (dati, esperimenti, calcoli e così via) sono disponibili solo in studio di Azure Machine Learning. Non sono disponibili dalla portale di Azure.
    • Il tentativo di esportare un modello per un'area di lavoro dal portale di Azure può restituire un errore simile al testo seguente: Could not get resource of the type <type>. Resources of this type will not be exported. come soluzione alternativa, usare uno dei modelli forniti come https://github.com/Azure/azure-quickstart-templates/tree/master/quickstarts/microsoft.machinelearningservices base per il modello.

Diagnostica dell'area di lavoro

È possibile eseguire la diagnostica nell'area di lavoro da studio di Azure Machine Learning o Python SDK. Dopo l'esecuzione della diagnostica, viene restituito un elenco di eventuali problemi rilevati. Questo elenco include collegamenti alle possibili soluzioni. Per altre informazioni, vedere Come usare la diagnostica dell'area di lavoro.

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 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/NotebookProxies Notebook integrati nell'istanza di calcolo di Azure Machine Learning.
Microsoft.ContainerService Se si prevede di distribuire modelli sottoposti a training in 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/databaseAccounts Istanza di Azure CosmosDB che registra i metadati per l'area di lavoro.
Microsoft.Search/searchServices Ricerca di Azure offre funzionalità di indicizzazione per l'area di lavoro.

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

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

Dopo aver creato un'area di lavoro, informazioni su come eseguire il training e distribuire un modello.

Per altre informazioni sulla pianificazione di un'area di lavoro per i requisiti dell'organizzazione, vedere Organizzare e configurare Azure Machine Learning.

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