Gerenciar espaços de trabalho do Azure Machine Learning usando a CLI do Azure

APLICA-SE A: Azure CLI ml extension v2 (atual)

Neste artigo, você aprenderá a criar e gerenciar espaços de trabalho do Azure Machine Learning usando a CLI do Azure. A CLI do Azure fornece comandos para gerenciar recursos do Azure e foi projetada para que você trabalhe rapidamente com o Azure, com ênfase na automação. A extensão de aprendizado de máquina da CLI do Azure fornece comandos para trabalhar com recursos do Azure Machine Learning.

Você também pode usar os seguintes métodos para criar e gerenciar espaços de trabalho do Azure Machine Learning:

Pré-requisitos

  • Uma subscrição do Azure com uma versão gratuita ou paga do Azure Machine Learning. Se não tiver uma subscrição do Azure, crie uma conta gratuita antes de começar.

  • CLI do Azure instalada, se você quiser executar os comandos da CLI do Azure neste artigo localmente.

    Se você executar os comandos da CLI do Azure no Azure Cloud Shell, não precisará instalar nada. O navegador acessa a versão de nuvem mais recente da CLI do Azure e a extensão do Azure Machine Learning.

Limitações

  • Ao criar um novo espaço de trabalho, você pode criar automaticamente os serviços necessários para o espaço de trabalho ou usar serviços existentes. Se você quiser usar serviços existentes de uma assinatura do Azure diferente do espaço de trabalho, deverá registrar o namespace do Azure Machine Learning na assinatura que contém esses serviços. Por exemplo, se você criar um espaço de trabalho na assinatura A que usa uma conta de armazenamento na assinatura B, o namespace do Azure Machine Learning deverá ser registrado na assinatura B antes que o espaço de trabalho possa usar a conta de armazenamento.

    O provedor de recursos para o Azure Machine Learning é Microsoft.MachineLearningServices. Para obter informações sobre como ver se está registado ou registado, consulte Fornecedores e tipos de recursos do Azure.

    Importante

    Essas informações se aplicam somente aos recursos fornecidos durante a criação do espaço de trabalho: Contas de Armazenamento do Azure, Registro de Contêiner do Azure, Cofre da Chave do Azure e Application Insights.

Ligar à sua subscrição do Azure

Se você usar o Azure Cloud Shell no portal do Azure, poderá ignorar esta seção. O shell de nuvem autentica você automaticamente usando a assinatura do Azure com a qual você está conectado.

Há várias maneiras de autenticar localmente em sua assinatura do Azure a partir da CLI do Azure. A maneira mais simples é usando um navegador.

Para autenticar interativamente, abra uma linha de comando ou terminal e execute az login. Se a CLI puder abrir seu navegador padrão, ela fará isso e carregará uma página de entrada. Caso contrário, siga as instruções de linha de comando para abrir um navegador e https://aka.ms/devicelogin inserir um código de autorização do dispositivo.

Gorjeta

Depois de entrar, você verá uma lista de assinaturas associadas à sua conta do Azure. As informações de assinatura com isDefault: true são a assinatura atualmente ativada para comandos da CLI do Azure. Essa assinatura deve ser a mesma que contém seu espaço de trabalho do Azure Machine Learning. Você pode encontrar as informações de assinatura na página de visão geral do seu espaço de trabalho no portal do Azure.

Para selecionar outra assinatura para usar para comandos da CLI do Azure, execute o az account set -s <subscription> comando e especifique o nome ou ID da assinatura para a qual alternar. Para obter mais informações sobre a seleção de assinaturas, consulte Usar várias assinaturas do Azure.

Para outros métodos de autenticação, consulte Entrar com a CLI do Azure.

Criar um grupo de recursos

O espaço de trabalho do Azure Machine Learning deve ser criado dentro de um grupo de recursos novo ou existente. Para criar um novo grupo de recursos, execute o seguinte comando. Substitua <resource-group-name> pelo nome e <location> pela região do Azure que você deseja usar para esse grupo de recursos.

Nota

Certifique-se de selecionar uma região onde o Azure Machine Learning está disponível. Para obter informações, consulte Produtos disponíveis por região.

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

A resposta a este comando é semelhante ao seguinte JSON. Você pode usar os valores de saída para localizar os recursos criados ou passá-los como entrada para outros comandos ou automação da CLI do Azure.

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

Para obter mais informações sobre como trabalhar com grupos de recursos, consulte az group.

Criar uma área de trabalho

Um espaço de trabalho implantado do Azure Machine Learning requer vários outros serviços como recursos associados dependentes. Quando você usa a CLI do Azure para criar um espaço de trabalho, a CLI pode criar os novos recursos associados ou você pode anexar recursos existentes.

Para criar um novo espaço de trabalho com novos serviços dependentes criados automaticamente, execute o seguinte comando:

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

Para criar um novo espaço de trabalho que usa recursos existentes, primeiro defina os recursos em um arquivo de configuração YAML, conforme descrito na seção a seguir. Em seguida, faça referência ao arquivo YAML no comando de criação do espaço de trabalho da CLI do Azure da seguinte maneira:

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

A saída do comando de criação do espaço de trabalho é semelhante ao seguinte JSON. Você pode usar os valores de saída para localizar os recursos criados ou passá-los como entrada para outros comandos da CLI do 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>"
}

Arquivo de configuração YAML

Para usar recursos existentes para um novo espaço de trabalho, defina os recursos em um arquivo de configuração YAML. O exemplo a seguir mostra um arquivo de configuração do espaço de trabalho 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

Não é necessário especificar todos os recursos dependentes associados no arquivo de configuração. Você pode especificar um ou mais dos recursos e permitir que os outros sejam criados automaticamente.

Você deve fornecer as IDs para recursos existentes no arquivo YAML. Você pode obter essas IDs exibindo as propriedades do recurso no portal do Azure ou executando os seguintes comandos da CLI do 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"
  • Conta de Armazenamento do Azure:
    az storage account show --name <storage-account-name> --query "id"

Os resultados da consulta são semelhantes à seguinte cadeia de caracteres:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Recursos dependentes associados

As considerações e limitações a seguir se aplicam a recursos dependentes associados a espaços de trabalho.

Application Insights

Gorjeta

Uma instância do Azure Application Insights é criada quando você cria o espaço de trabalho. Você pode excluir a instância do Application Insights após a criação do cluster, se desejar. Excluí-lo limita as informações coletadas do espaço de trabalho e pode dificultar a solução de problemas. Se você excluir a instância do Application Insights criada pelo espaço de trabalho, a única maneira de recriá-la é excluir e recriar o espaço de trabalho.

Para obter mais informações sobre como usar a instância do Application Insights, consulte Monitorar e coletar dados de pontos de extremidade de serviço Web do Machine Learning.

Container Registry

O espaço de trabalho do Azure Machine Learning usa o Registro de Contêiner do Azure para algumas operações e cria automaticamente uma instância do Registro de Contêiner quando precisa de uma pela primeira vez.

Aviso

Depois que um Registro de Contêiner do Azure for criado para um espaço de trabalho, não o exclua. Isso quebra seu espaço de trabalho do Azure Machine Learning.

Para usar um registro de contêiner do Azure existente com um espaço de trabalho do Azure Machine Learning, você deve habilitar a conta de administrador no registro do contêiner.

Conta de Armazenamento

Se você usar uma conta de armazenamento existente para o espaço de trabalho, ela deverá atender aos seguintes critérios. Esses requisitos se aplicam apenas à conta de armazenamento padrão.

  • A conta não pode ser Premium_LRS ou Premium_GRS.
  • Os recursos de Blob do Azure e Arquivo do Azure devem estar habilitados.
  • O namespace hierárquico deve ser desabilitado para o Armazenamento do Azure Data Lake.

Proteja as comunicações da CLI do Azure

Todos os comandos do Azure Machine Learning V2 az ml comunicam dados operacionais, como parâmetros e metadados YAML, ao Azure Resource Manager. Alguns dos comandos da CLI do Azure comunicam com o Azure Resource Manager através da Internet.

Se o seu espaço de trabalho do Azure Machine Learning for público e não estiver atrás de uma rede virtual, as comunicações serão protegidas usando HTTPS/TLS 1.2. Nenhuma configuração extra é necessária.

Se o seu espaço de trabalho do Azure Machine Learning usar um ponto de extremidade privado e uma rede virtual, você deverá escolher uma das seguintes configurações para usar a CLI do Azure:

  • Para comunicar através da Internet pública, defina o --public-network-access parâmetro como Enabled.

  • Para evitar a comunicação pela Internet pública por motivos de segurança, configure o Aprendizado de Máquina do Azure para usar a conectividade de rede privada com um ponto de extremidade do Azure Private Link, conforme descrito na seção a seguir.

Conectividade de rede privada

Dependendo do seu caso de uso e dos requisitos organizacionais, você pode configurar o Aprendizado de Máquina do Azure para usar a conectividade de rede privada. Você pode usar a CLI do Azure para implantar um espaço de trabalho e um ponto de extremidade de Link Privado para o recurso de espaço de trabalho.

Se você usar pontos de extremidade de link privado para o Registro de Contêiner do Azure e o Aprendizado de Máquina do Azure, não poderá usar tarefas do Registro de Contêiner para criar imagens de ambiente do Docker. Em vez disso, você deve criar imagens usando um cluster de computação do Azure Machine Learning.

No arquivo de configuração do espaço de trabalho YAML, você deve definir a propriedade como um nome de image_build_compute cluster de computação a ser usado para a criação do ambiente de imagem do Docker. Você também pode especificar que o espaço de trabalho de link privado não está acessível pela Internet definindo a public_network_access propriedade como Disabled.

O código a seguir mostra um exemplo de arquivo de configuração de espaço de trabalho para conectividade de rede 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

Depois de criar o espaço de trabalho, use os comandos da CLI de rede do Azure para criar um ponto de extremidade de link privado para o espaço de trabalho.

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 criar as entradas de zona DNS (Sistema de Nomes de Domínio) privadas para o espaço de trabalho, use os seguintes 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 obter mais informações sobre como usar um ponto de extremidade privado e uma rede virtual com seu espaço de trabalho, consulte os seguintes artigos:

Você pode usar o seguinte processo para proteger as comunicações com todos os recursos do Azure Resource Manager em um grupo de gerenciamento do Azure usando o Link Privado:

  1. Crie um link privado para gerenciar recursos do Azure.
  2. Crie um ponto de extremidade privado para o link privado criado na etapa anterior.

Importante

Para configurar um link privado para o Gerenciador de Recursos do Azure, você deve ser o Proprietário da assinatura do Azure e um Proprietário ou Colaborador no grupo de gerenciamento raiz. Para obter mais informações, consulte Criar um link privado para gerenciar recursos do Azure.

Configurações avançadas

Há várias outras configurações avançadas que você pode aplicar a espaços de trabalho. Para configurações de recursos complexos, consulte também as opções de implantação baseadas em modelo, incluindo o Azure Resource Manager.

Chaves geridas pelo cliente

Por padrão, os metadados do espaço de trabalho são armazenados em uma instância do Azure Cosmos DB mantida pela Microsoft e criptografados usando chaves gerenciadas pela Microsoft. Em vez de usar a chave gerenciada pela Microsoft, você pode fornecer sua própria chave. Usar sua própria chave cria um conjunto extra de recursos em sua assinatura do Azure para armazenar seus dados.

Nota

O Azure Cosmos DB não é usado para armazenar informações de desempenho do modelo, informações registradas por experimentos ou informações registradas de suas implantações de modelo.

Para criar um espaço de trabalho que use sua própria chave, use o customer_managed_key parâmetro no arquivo de configuração do espaço de trabalho YAML e especifique o ID do recurso do que contém key_vault e da key_uri chave dentro do cofre.

$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 saber mais sobre os recursos que são criados quando você usa sua própria chave para criptografia, consulte Criptografia de dados com o Azure Machine Learning.

Nota

Para gerenciar os recursos de criptografia de dados adicionados, use o Gerenciamento de Identidade e Acesso para autorizar o Aplicativo de Aprendizado de Máquina com permissões de Colaborador em sua assinatura.

Espaços de trabalho de alto impacto nos negócios

Para limitar os dados que a Microsoft coleta em seu espaço de trabalho, você pode especificar um espaço de trabalho de alto impacto nos negócios definindo a hbi_workspace propriedade no arquivo de configuração do YAML como TRUE. Você pode definir alto impacto nos negócios somente quando cria um espaço de trabalho. Não é possível alterar essa configuração após a criação do espaço de trabalho.

Para obter mais informações sobre chaves gerenciadas pelo cliente e espaço de trabalho de alto impacto nos negócios, consulte Segurança corporativa para o Azure Machine Learning.

Usar a CLI do Azure para gerenciar espaços de trabalho

Você pode usar os comandos az ml workspace para gerenciar espaços de trabalho.

Obter informações sobre o espaço de trabalho

Para obter informações sobre um espaço de trabalho, use o seguinte comando:

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

Para obter mais informações, consulte az ml workspace show.

Atualizar um espaço de trabalho

Para atualizar um espaço de trabalho, use o seguinte comando:

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

Por exemplo, o comando a seguir atualiza um espaço de trabalho para habilitar o acesso à rede pública:

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

Para obter mais informações, veja az ml workspace update.

Sincronizar chaves para recursos dependentes

Se você alterar as chaves de acesso de um dos recursos usados pelo espaço de trabalho, levará cerca de uma hora para que o espaço de trabalho seja sincronizado com as novas chaves. Para forçar o espaço de trabalho a sincronizar as novas chaves imediatamente, use o seguinte comando:

az ml workspace sync-keys -n <workspace-name> -g <resource-group-name>
  • Para obter mais informações sobre o sync-keys comando, consulte az ml workspace sync-keys.
  • Para obter mais informações sobre como alterar chaves, consulte Regenerar chaves de acesso de armazenamento.

Mover uma área de trabalho

Mover um espaço de trabalho do Azure Machine Learning está atualmente em visualização. Para obter mais informações, consulte Mover espaços de trabalho do Azure Machine Learning entre assinaturas (visualização).

Eliminar uma área de trabalho

Para excluir um espaço de trabalho depois que ele não for mais necessário, use o seguinte comando:

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

O comportamento padrão do Aprendizado de Máquina do Azure é excluir suavemente o espaço de trabalho. O espaço de trabalho não é excluído imediatamente, mas é marcado para exclusão. Para obter mais informações, consulte Exclusão suave.

Aviso

Se a exclusão suave estiver habilitada para o espaço de trabalho, ela poderá ser recuperada após a exclusão. Se a exclusão suave não estiver habilitada ou se você selecionar a opção para excluir permanentemente o espaço de trabalho, ele não poderá ser recuperado. Para obter mais informações, consulte Recuperar um espaço de trabalho excluído.

A exclusão de um espaço de trabalho não exclui as informações do aplicativo, a conta de armazenamento, o cofre de chaves ou o registro de contêiner usados pelo espaço de trabalho. Para excluir o espaço de trabalho, os recursos dependentes e todos os outros recursos do Azure no grupo de recursos, você pode excluir o grupo de recursos. Para excluir o grupo de recursos, use o seguinte comando:

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

Para obter mais informações, consulte az ml workspace delete.

Solucionar erros do provedor de recursos

Ao criar um espaço de trabalho do Azure Machine Learning ou um recurso usado pelo espaço de trabalho, você pode receber um erro semelhante às seguintes mensagens:

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

A maioria dos provedores de recursos são registrados automaticamente, mas não todos. Se receber esta mensagem, terá de registar o fornecedor mencionado.

A tabela a seguir contém uma lista dos provedores de recursos exigidos pelo Azure Machine Learning:

Fornecedor de recursos Por que motivo é necessária
Microsoft.MachineLearningServices Criando o espaço de trabalho do Azure Machine Learning.
Microsoft.Armazenamento A Conta de Armazenamento do Azure é usada como o armazenamento padrão para o espaço de trabalho.
Microsoft.ContainerRegistry O Registro de Contêiner do Azure é usado pelo espaço de trabalho para criar imagens do Docker.
Microsoft.KeyVault O Azure Key Vault é usado pelo espaço de trabalho para armazenar segredos.
Microsoft.Notebooks Blocos de anotações integrados na instância de computação do Azure Machine Learning.
Microsoft.ContainerService Se você planeja implantar modelos treinados nos Serviços Kubernetes do Azure.

Se você planeja usar uma chave gerenciada pelo cliente com o Azure Machine Learning, os seguintes provedores de serviços devem ser registrados:

Fornecedor de recursos Por que motivo é necessária
Microsoft.Banco de Dados de Documentos Instância do Azure CosmosDB que registra metadados para o espaço de trabalho.
Microsoft.Pesquisa O Azure Search fornece recursos de indexação para o espaço de trabalho.

Se você planeja usar uma rede virtual gerenciada com o Azure Machine Learning, o provedor de recursos Microsoft.Network deve ser registrado. Este fornecedor de recursos é utilizado pelo espaço de trabalho ao criar endpoints privados para a rede virtual gerida.

Para obter informações sobre como registrar provedores de recursos, consulte Resolver erros para registro de provedor de recursos.

  • Para obter mais informações sobre a extensão da CLI do Azure para aprendizado de máquina, consulte a documentação az ml .
  • Para obter informações sobre diagnósticos que podem identificar e ajudar a resolver problemas do espaço de trabalho, consulte Como usar o diagnóstico do espaço de trabalho.
  • Para obter informações sobre como manter seu Aprendizado de Máquina do Azure atualizado com as atualizações de segurança mais recentes, consulte Gerenciamento de vulnerabilidades.