Hantera Azure Machine Learning-arbetsytor med Hjälp av Azure CLI

GÄLLER FÖR:Azure CLI ml extension v2 (aktuell)

I den här artikeln får du lära dig hur du skapar och hanterar Azure Machine Learning-arbetsytor med hjälp av Azure CLI. Azure CLI tillhandahåller kommandon för att hantera Azure-resurser och är utformat för att få dig att arbeta snabbt med Azure, med fokus på automatisering. Maskininlärningstillägget till CLI innehåller kommandon för att arbeta med Azure Machine Learning-resurser.

Du kan också hantera arbetsytor i Azure-portalen och Python SDK, Azure PowerShell eller via VS Code-tillägget.

Förutsättningar

Begränsningar

  • När du skapar en ny arbetsyta kan du antingen automatiskt skapa tjänster som behövs av arbetsytan eller använda befintliga tjänster. Om du vill använda befintliga tjänster från en annan Azure-prenumeration än arbetsytan måste du registrera Azure Machine Learning-namnområdet i prenumerationen som innehåller dessa tjänster. Om du till exempel skapar en arbetsyta i prenumeration A som använder ett lagringskonto från prenumeration B måste Azure Machine Learning-namnområdet registreras i prenumeration B innan du kan använda lagringskontot med arbetsytan.

    Resursprovidern för Azure Machine Learning är Microsoft.MachineLearningServices. Information om hur du ser om den är registrerad och hur du registrerar den finns i artikeln Azure-resursprovidrar och -typer .

    Viktigt!

    Detta gäller endast för resurser som tillhandahålls när arbetsytan skapas. Azure Storage-konton, Azure Container Register, Azure Key Vault och Application Insights.

Dricks

En Azure Application Insights-instans skapas när du skapar arbetsytan. Du kan ta bort Application Insights-instansen när klustret har skapats om du vill. Om du tar bort den begränsas den information som samlas in från arbetsytan och kan göra det svårare att felsöka problem. Om du tar bort Application Insights-instansen som skapats av arbetsytan kan du inte återskapa den utan att ta bort och återskapa arbetsytan.

Mer information om hur du använder den här Application Insights-instansen finns i Övervaka och samla in data från Machine Learning-webbtjänstslutpunkter.

Säker CLI-kommunikation

Vissa Av Azure CLI-kommandona kommunicerar med Azure Resource Manager via Internet. Den här kommunikationen skyddas med HTTPS/TLS 1.2.

Med Azure Machine Learning CLI-tillägget v2 ('ml') kommunicerar alla kommandon med Azure Resource Manager. Detta omfattar driftdata som YAML-parametrar och metadata. Om din Azure Machine Learning-arbetsyta är offentlig (dvs. inte bakom ett virtuellt nätverk) krävs ingen extra konfiguration. Kommunikation skyddas med HTTPS/TLS 1.2.

Om din Azure Machine Learning-arbetsyta använder en privat slutpunkt och ett virtuellt nätverk och du använder CLI v2 väljer du någon av följande konfigurationer som ska användas:

  • Om du är ok med CLI v2-kommunikationen via det offentliga Internet använder du följande --public-network-access parameter för kommandot för az ml workspace update att aktivera åtkomst till offentligt nätverk. Följande kommando uppdaterar till exempel en arbetsyta för offentlig nätverksåtkomst:

    az ml workspace update --name myworkspace --public-network-access enabled
    
  • Om du inte är ok med CLI v2-kommunikationen via det offentliga Internet kan du använda en Azure Private Link för att öka säkerheten för kommunikationen. Använd följande länkar för att skydda kommunikationen med Azure Resource Manager med hjälp av Azure Private Link.

    1. Skydda din Azure Machine Learning-arbetsyta i ett virtuellt nätverk med hjälp av en privat slutpunkt.
    2. Skapa en Private Link för att hantera Azure-resurser.
    3. Skapa en privat slutpunkt för private link som skapades i föregående steg.

    Viktigt!

    Om du vill konfigurera den privata länken för Azure Resource Manager måste du vara prenumerationsägare för Azure-prenumerationen och ägare eller deltagare i rothanteringsgruppen. Mer information finns i Skapa en privat länk för att hantera Azure-resurser.

Mer information om CLI v2-kommunikation finns i Installera och konfigurera CLI.

Anslut CLI till din Azure-prenumeration

Viktigt!

Om du använder Azure Cloud Shell kan du hoppa över det här avsnittet. Cloud Shell autentiserar dig automatiskt med det konto som du loggar in på din Azure-prenumeration.

Det finns flera sätt att autentisera till din Azure-prenumeration från CLI. Det enklaste är att interaktivt autentisera med hjälp av en webbläsare. Om du vill autentisera interaktivt öppnar du en kommandorad eller terminal och använder följande kommando:

az login

Om CLI kan öppna din standardwebbläsare så sker det och en inloggningssida läses in. Annars måste du öppna en webbläsare och följa anvisningarna på kommandoraden. Anvisningarna omfattar att bläddra till https://aka.ms/devicelogin och ange en auktoriseringskod.

Dricks

När du har loggat in visas en lista över prenumerationer som är associerade med ditt Azure-konto. Prenumerationsinformationen med isDefault: true är den för närvarande aktiverade prenumerationen för Azure CLI-kommandon. Den här prenumerationen måste vara samma som innehåller din Azure Machine Learning-arbetsyta. Du hittar prenumerations-ID: t från Azure-portalen genom att gå till översiktssidan för din arbetsyta.

Om du vill välja en annan prenumeration använder du az account set -s <subscription name or ID> kommandot och anger prenumerationsnamnet eller ID:t att växla till. Mer information om val av prenumeration finns i Använda flera Azure-prenumerationer.

Andra metoder för autentisering finns i Logga in med Azure CLI.

Skapa en resursgrupp

Azure Machine Learning-arbetsytan måste skapas i en resursgrupp. Du kan välja en befintlig resursgrupp eller skapa en ny. Använd följande kommando för att skapa en ny resursgrupp. Ersätt <resource-group-name> med namnet som ska användas för den här resursgruppen. Ersätt <location> med den Azure-region som ska användas för den här resursgruppen:

Kommentar

Du bör välja en region där Azure Machine Learning är tillgängligt. Mer information finns i Produkter som är tillgängliga per region.

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

Svaret från det här kommandot liknar följande JSON. Du kan använda utdatavärdena för att hitta de skapade resurserna eller parsa dem som indata till efterföljande CLI-steg för automatisering.

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

Mer information om hur du arbetar med resursgrupper finns i az group.

Skapa en arbetsyta

När du distribuerar en Azure Machine Learning-arbetsyta krävs olika andra tjänster som beroende associerade resurser. När du använder CLI för att skapa arbetsytan kan CLI antingen skapa nya associerade resurser åt dig eller koppla befintliga resurser.

Viktigt!

När du kopplar ett eget lagringskonto kontrollerar du att det uppfyller följande kriterier:

  • Lagringskontot är inte ett Premium-konto (Premium_LRS och Premium_GRS)
  • Både Azure Blob- och Azure File-funktioner aktiverade
  • Hierarkiskt namnområde (ADLS Gen 2) är inaktiverat Dessa krav gäller endast för det standardlagringskonto som används av arbetsytan.

När du kopplar Azure-containerregistret måste du ha administratörskontot aktiverat innan det kan användas med en Azure Machine Learning-arbetsyta.

Om du vill skapa en ny arbetsyta där tjänsterna skapas automatiskt använder du följande kommando:

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

Viktigt!

När du kopplar befintliga resurser behöver du inte ange alla. Du kan ange en eller flera. Du kan till exempel ange ett befintligt lagringskonto så skapar arbetsytan de andra resurserna.

Utdata från kommandot för att skapa arbetsytor liknar följande JSON. Du kan använda utdatavärdena för att hitta de skapade resurserna eller parsa dem som indata till efterföljande CLI-steg.

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

Avancerade konfigurationer

Konfigurera arbetsyta för privat nätverksanslutning

Beroende på ditt användningsfall och organisationens krav kan du välja att konfigurera Azure Machine Learning med hjälp av privata nätverksanslutningar. Du kan använda Azure CLI för att distribuera en arbetsyta och en slutpunkt för privat länk för arbetsyteresursen. Mer information om hur du använder en privat slutpunkt och ett virtuellt nätverk (VNet) med din arbetsyta finns i Översikt över isolering och sekretess för virtuella nätverk. För komplexa resurskonfigurationer, se även mallbaserade distributionsalternativ, inklusive Azure Resource Manager.

När du använder privat länk kan arbetsytan inte använda Azure Container Registry för att skapa Docker-avbildningar. Därför måste du ange egenskapen image_build_compute till ett cpu-beräkningsklusternamn som ska användas för att skapa Docker-avbildningsmiljön. Du kan också ange om arbetsytan privat länk ska vara tillgänglig via Internet med hjälp av egenskapen 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

När du har skapat arbetsytan använder du CLI-kommandona för Azure-nätverk för att skapa en privat länkslutpunkt för arbetsytan.

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>

Om du vill skapa posterna i den privata DNS-zonen för arbetsytan använder du följande kommandon:

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

Kundhanterad nyckel och arbetsyta med hög affärspåverkan

Som standard lagras metadata för arbetsytan i en Azure Cosmos DB-instans som Microsoft underhåller. Dessa data krypteras med hjälp av Microsoft-hanterade nycklar. I stället för att använda den Microsoft-hanterade nyckeln kan du även ange en egen nyckel. På så sätt skapas en extra uppsättning resurser i din Azure-prenumeration för att lagra dina data.

Mer information om de resurser som skapas när du tar med din egen nyckel för kryptering finns i Datakryptering med Azure Machine Learning.

Använd parametern customer_managed_key och innehåller key_vault och key_uri parametrar för att ange resurs-ID och URI för nyckeln i valvet.

Om du vill begränsa de data som Microsoft samlar in på din arbetsyta kan du dessutom ange egenskapen 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

Sedan kan du referera till den här konfigurationsfilen som en del av CLI-kommandot för att skapa arbetsytor.

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

Kommentar

Auktorisera Machine Learning-appen (i Identitets- och åtkomsthantering) med deltagarbehörigheter för din prenumeration för att hantera ytterligare resurser för datakryptering.

Kommentar

Azure Cosmos DB används inte för att lagra information som modellprestanda, information som loggas av experiment eller information som loggas från dina modelldistributioner.

Viktigt!

Du kan bara välja hög affärspåverkan när du skapar en arbetsyta. Du kan inte ändra den här inställningen när arbetsytan har skapats.

Mer information om kundhanterade nycklar och arbetsyta med hög affärspåverkan finns i Företagssäkerhet för Azure Machine Learning.

Använda CLI för att hantera arbetsytor

Hämta information om arbetsytan

Använd följande kommando för att få information om en arbetsyta:

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

Mer information finns i dokumentationen om az ml workspace show .

Uppdatera en arbetsyta

Om du vill uppdatera en arbetsyta använder du följande kommando:

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

Mer information finns i dokumentationen om az ml workspace update .

Synkronisera nycklar för beroende resurser

Om du ändrar åtkomstnycklar för en av de resurser som används av din arbetsyta tar det ungefär en timme innan arbetsytan synkroniseras med den nya nyckeln. Om du vill tvinga arbetsytan att synkronisera de nya nycklarna omedelbart använder du följande kommando:

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

Mer information om hur du ändrar nycklar finns i Återskapa åtkomstnycklar för lagring.

Mer information om kommandot sync-keys finns i az ml workspace sync-keys.

Ta bort en arbetsyta

Varning

Om mjuk borttagning är aktiverat för arbetsytan kan den återställas efter borttagningen. Om mjuk borttagning inte är aktiverat eller om du väljer alternativet att ta bort arbetsytan permanent kan den inte återställas. Mer information finns i Återställa en borttagen arbetsyta.

Om du vill ta bort en arbetsyta när den inte längre behövs använder du följande kommando:

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

Viktigt!

Om du tar bort en arbetsyta tas inte programinsikten, lagringskontot, nyckelvalvet eller containerregistret bort som används av arbetsytan.

Du kan också ta bort resursgruppen, som tar bort arbetsytan och alla andra Azure-resurser i resursgruppen. Om du vill ta bort resursgruppen använder du följande kommando:

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

Mer information finns i dokumentationen om az ml-arbetsytans borttagning .

Dricks

Standardbeteendet för Azure Machine Learning är att mjuk borttagning av arbetsytan. Det innebär att arbetsytan inte tas bort omedelbart, utan i stället markeras för borttagning. Mer information finns i Mjuk borttagning.

Felsökning

Resursproviderfel

När du skapar en Azure Machine Learning-arbetsyta eller en resurs som används av arbetsytan kan du få ett fel som liknar följande meddelanden:

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

De flesta resursprovidrar registreras automatiskt, men inte alla. Om du får det här meddelandet måste du registrera den angivna providern.

Följande tabell innehåller en lista över de resursprovidrar som krävs av Azure Machine Learning:

Resursprovider Varför det behövs
Microsoft.MachineLearningServices Skapa Azure Machine Learning-arbetsytan.
Microsoft.Storage Azure Storage-kontot används som standardlagring för arbetsytan.
Microsoft.ContainerRegistry Azure Container Registry används av arbetsytan för att skapa Docker-avbildningar.
Microsoft.KeyVault Azure Key Vault används av arbetsytan för att lagra hemligheter.
Microsoft.Notebooks Integrerade notebook-filer på Azure Machine Learning-beräkningsinstansen.
Microsoft.ContainerService Om du planerar att distribuera tränade modeller till Azure Kubernetes Services.

Om du planerar att använda en kundhanterad nyckel med Azure Machine Learning måste följande tjänsteleverantörer registreras:

Resursprovider Varför det behövs
Microsoft.DocumentDB Azure CosmosDB-instans som loggar metadata för arbetsytan.
Microsoft.Search Azure Search tillhandahåller indexeringsfunktioner för arbetsytan.

Om du planerar att använda ett hanterat virtuellt nätverk med Azure Machine Learning måste resursprovidern Microsoft.Network vara registrerad. Den här resursprovidern används av arbetsytan när du skapar privata slutpunkter för det hanterade virtuella nätverket.

Information om hur du registrerar resursprovidrar finns i Lösa fel för registrering av resursprovider.

Flytta arbetsytan

Varning

Det går inte att flytta din Azure Machine Learning-arbetsyta till en annan prenumeration eller flytta den ägande prenumerationen till en ny klientorganisation. Detta kan orsaka fel.

Ta bort Azure Container Registry

Azure Machine Learning-arbetsytan använder Azure Container Registry (ACR) för vissa åtgärder. Den skapar automatiskt en ACR-instans när den först behöver en.

Varning

När ett Azure Container Registry har skapats för en arbetsyta ska du inte ta bort det. Om du gör det bryts din Azure Machine Learning-arbetsyta.

Nästa steg

Mer information om Azure CLI-tillägget för maskininlärning finns i az ml-dokumentationen.

Information om hur du söker efter problem med din arbetsyta finns i Så här använder du arbetsytediagnostik.

Information om hur du flyttar en arbetsyta till en ny Azure-prenumeration finns i Så här flyttar du en arbetsyta.

Information om hur du håller Din Azure Machine Learning uppdaterad med de senaste säkerhetsuppdateringarna finns i Sårbarhetshantering.