Delen via


Azure Machine Learning-werkruimten beheren met behulp van Azure CLI

VAN TOEPASSING OP: Azure CLI ml-extensie v2 (huidige)

In dit artikel leert u hoe u Azure Machine Learning-werkruimten maakt en beheert met behulp van de Azure CLI. De Azure CLI biedt opdrachten voor het beheren van Azure-resources en is ontworpen om u snel met Azure te laten werken, met de nadruk op automatisering. De Azure CLI-extensie voor machine learning biedt opdrachten voor het werken met Azure Machine Learning-resources.

U kunt ook de volgende methoden gebruiken om Azure Machine Learning-werkruimten te maken en te beheren:

Vereisten

  • Een Azure-abonnement met een gratis of betaalde versie van Azure Machine Learning. Als u geen Azure-abonnement hebt, maakt u een gratis account voordat u begint.

  • Azure CLI is geïnstalleerd als u de Azure CLI-opdrachten lokaal in dit artikel wilt uitvoeren.

    Als u de Azure CLI-opdrachten uitvoert in Azure Cloud Shell, hoeft u niets te installeren. De browser heeft toegang tot de nieuwste cloudversie van Azure CLI en de Azure Machine Learning-extensie.

Beperkingen

  • Wanneer u een nieuwe werkruimte maakt, kunt u automatisch services maken die nodig zijn voor de werkruimte of bestaande services gebruiken. Als u bestaande services van een ander Azure-abonnement wilt gebruiken dan de werkruimte, moet u de Azure Machine Learning-naamruimte registreren in het abonnement dat deze services bevat. Als u bijvoorbeeld een werkruimte maakt in abonnement A die gebruikmaakt van een opslagaccount in abonnement B, moet de Azure Machine Learning-naamruimte zijn geregistreerd in abonnement B voordat de werkruimte het opslagaccount kan gebruiken.

    De resourceprovider voor Azure Machine Learning is Microsoft.MachineLearningServices. Zie Azure-resourceproviders en -typen voor meer informatie over het registreren of registreren ervan.

    Belangrijk

    Deze informatie is alleen van toepassing op resources die worden verstrekt tijdens het maken van de werkruimte: Azure Storage-accounts, Azure Container Registry, Azure Key Vault en Application Insights.

Verbinding maken met uw Azure-abonnement

Als u Azure Cloud Shell vanuit Azure Portal gebruikt, kunt u deze sectie overslaan. De Cloud Shell verifieert u automatisch met het Azure-abonnement waarmee u bent aangemeld.

Er zijn verschillende manieren om lokaal te verifiëren bij uw Azure-abonnement vanuit Azure CLI. De eenvoudigste manier is door een browser te gebruiken.

Als u interactief wilt verifiëren, opent u een opdrachtregel of terminal en voert u deze uit az login. Als de CLI uw standaardbrowser kan openen, gebeurt dit en wordt een aanmeldingspagina geladen. Volg anders de opdrachtregelinstructies om een browser te openen en een apparaatautorisatiecode in te https://aka.ms/devicelogin voeren.

Tip

Nadat u zich hebt aangemeld, ziet u een lijst met abonnementen die zijn gekoppeld aan uw Azure-account. De abonnementsgegevens met isDefault: true zijn het abonnement dat momenteel is geactiveerd voor Azure CLI-opdrachten. Dit abonnement moet gelijk zijn aan het abonnement dat uw Azure Machine Learning-werkruimte bevat. U vindt de abonnementsgegevens op de overzichtspagina voor uw werkruimte in Azure Portal.

Als u een ander abonnement wilt selecteren voor Azure CLI-opdrachten, voert u de az account set -s <subscription> opdracht uit en geeft u de abonnementsnaam of -id op waarnaar u wilt overschakelen. Zie Meerdere Azure-abonnementen gebruiken voor meer informatie over het selecteren van abonnementen.

Zie Aanmelden met Azure CLI voor andere verificatiemethoden.

Een brongroep maken

De Azure Machine Learning-werkruimte moet worden gemaakt in een bestaande of nieuwe resourcegroep. Voer de volgende opdracht uit om een nieuwe resourcegroep te maken. Vervang <resource-group-name> door de naam en <location> door de Azure-regio die u wilt gebruiken voor deze resourcegroep.

Notitie

Zorg ervoor dat u een regio selecteert waar Azure Machine Learning beschikbaar is. Zie Producten beschikbaar per regio voor informatie.

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

Het antwoord op deze opdracht is vergelijkbaar met de volgende JSON. U kunt de uitvoerwaarden gebruiken om de gemaakte resources te zoeken of deze door te geven als invoer voor andere Azure CLI-opdrachten of automatisering.

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

Zie az group voor meer informatie over het werken met resourcegroepen.

Een werkruimte maken

Voor een geïmplementeerde Azure Machine Learning-werkruimte zijn verschillende andere services vereist als afhankelijke resources. Wanneer u Azure CLI gebruikt om een werkruimte te maken, kan de CLI de nieuwe gekoppelde resources maken of bestaande resources koppelen.

Voer de volgende opdracht uit om een nieuwe werkruimte te maken met nieuwe automatisch gemaakte afhankelijke services:

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

Als u een nieuwe werkruimte wilt maken die gebruikmaakt van bestaande resources, definieert u eerst de resources in een YAML-configuratiebestand, zoals beschreven in de volgende sectie. Vervolgens verwijst u als volgt naar het YAML-bestand in de opdracht voor het maken van de Azure CLI-werkruimte:

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

De uitvoer van de opdracht voor het maken van de werkruimte is vergelijkbaar met de volgende JSON. U kunt de uitvoerwaarden gebruiken om de gemaakte resources te zoeken of deze door te geven als invoer voor andere Azure CLI-opdrachten.

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

YAML-configuratiebestand

Als u bestaande resources wilt gebruiken voor een nieuwe werkruimte, definieert u de resources in een YAML-configuratiebestand. In het volgende voorbeeld ziet u een YAML-werkruimteconfiguratiebestand:

$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

U hoeft niet alle gekoppelde afhankelijke resources in het configuratiebestand op te geven. U kunt een of meer resources opgeven en de andere automatisch laten maken.

U moet de id's opgeven voor bestaande resources in het YAML-bestand. U kunt deze id's ophalen door de resource-eigenschappen in Azure Portal weer te geven of door de volgende Azure CLI-opdrachten uit te voeren:

  • Azure-toepassing Inzichten:
    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"
  • Azure Storage-account:
    az storage account show --name <storage-account-name> --query "id"

De queryresultaten zien eruit als de volgende tekenreeks:
"/subscriptions/<subscription-GUID>/resourceGroups/<resource-group-name>/providers/<provider>/<subresource>/<id>".

Gekoppelde afhankelijke resources

De volgende overwegingen en beperkingen zijn van toepassing op afhankelijke resources die zijn gekoppeld aan werkruimten.

Analyses van toepassingen

Tip

Er wordt een Azure-toepassing Insights-exemplaar gemaakt wanneer u de werkruimte maakt. U kunt het Application Insights-exemplaar verwijderen nadat het cluster is gemaakt. Als u deze verwijdert, worden de gegevens die zijn verzameld uit de werkruimte beperkt en kan het lastiger zijn om problemen op te lossen. Als u het Application Insights-exemplaar verwijdert dat door de werkruimte is gemaakt, kunt u deze alleen opnieuw maken door de werkruimte te verwijderen en opnieuw te maken.

Zie Gegevens van Machine Learning-webservice-eindpunten bewaken en verzamelen voor meer informatie over het gebruik van het Application Insights-exemplaar.

Container Registry

De Azure Machine Learning-werkruimte maakt voor sommige bewerkingen gebruik van Azure Container Registry en maakt automatisch een Container Registry-exemplaar wanneer deze voor het eerst een exemplaar nodig heeft.

Waarschuwing

Zodra een Azure Container Registry voor een werkruimte is gemaakt, verwijdert u deze niet. Hierdoor wordt uw Azure Machine Learning-werkruimte verbroken.

Als u een bestaand Azure-containerregister met een Azure Machine Learning-werkruimte wilt gebruiken, moet u het beheerdersaccount in het containerregister inschakelen.

Opslagaccount

Als u een bestaand opslagaccount voor de werkruimte gebruikt, moet deze voldoen aan de volgende criteria. Deze vereisten zijn alleen van toepassing op het standaardopslagaccount.

  • Het account kan niet worden Premium_LRS of Premium_GRS.
  • De mogelijkheden van Azure Blob en Azure File moeten beide zijn ingeschakeld.
  • Hiërarchische naamruimte moet worden uitgeschakeld voor Azure Data Lake Storage.

Azure CLI-communicatie beveiligen

Alle Azure Machine Learning V2-opdrachten az ml communiceren operationele gegevens, zoals YAML-parameters en -metagegevens, naar Azure Resource Manager. Sommige Azure CLI-opdrachten communiceren via internet met Azure Resource Manager.

Als uw Azure Machine Learning-werkruimte openbaar is en zich niet achter een virtueel netwerk bevindt, wordt communicatie beveiligd met HTTPS/TLS 1.2. Er is geen extra configuratie vereist.

Als uw Azure Machine Learning-werkruimte gebruikmaakt van een privé-eindpunt en een virtueel netwerk, moet u een van de volgende configuraties kiezen om Azure CLI te gebruiken:

  • Als u via het openbare internet wilt communiceren, stelt u de --public-network-access parameter in op Enabled.

  • Configureer Azure Machine Learning voor het gebruik van een privénetwerkverbinding met een Azure Private Link-eindpunt, zoals beschreven in de volgende sectie om te voorkomen dat er via het openbare internet wordt gecommuniceerd.

Privénetwerkconnectiviteit

Afhankelijk van uw use-case en organisatievereisten kunt u Azure Machine Learning configureren voor gebruik van privénetwerkconnectiviteit. U kunt de Azure CLI gebruiken om een werkruimte en een Private Link-eindpunt voor de werkruimteresource te implementeren.

Als u private link-eindpunten gebruikt voor zowel Azure Container Registry als Azure Machine Learning, kunt u geen Container Registry-taken gebruiken om Installatiekopieën van docker-omgevingen te bouwen. In plaats daarvan moet u installatiekopieën bouwen met behulp van een Azure Machine Learning-rekencluster.

In het configuratiebestand van uw YAML-werkruimte moet u de image_build_compute eigenschap instellen op een naam van een rekencluster die moet worden gebruikt voor het bouwen van de Docker-installatiekopieënomgeving. U kunt ook opgeven dat de private link-werkruimte niet toegankelijk is via internet door de public_network_access eigenschap in te stellen op Disabled.

De volgende code toont een voorbeeld van een werkruimteconfiguratiebestand voor de connectiviteit met een privénetwerk.

$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

Nadat u de werkruimte hebt gemaakt, gebruikt u de Cli-opdrachten voor Azure-netwerken om een private link-eindpunt voor de werkruimte te maken.

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>

Gebruik de volgende opdrachten om de dns-zonevermeldingen (Private Domain Name System) voor de werkruimte te maken:

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

Zie de volgende artikelen voor meer informatie over het gebruik van een privé-eindpunt en virtueel netwerk met uw werkruimte:

U kunt het volgende proces gebruiken om communicatie met alle Azure Resource Manager-resources in een Azure-beheergroep te beveiligen met behulp van Private Link:

  1. Maak een privékoppeling voor het beheren van Azure-resources.
  2. Maak een privé-eindpunt voor de privékoppeling die u in de vorige stap hebt gemaakt.

Belangrijk

Als u een privékoppeling voor Azure Resource Manager wilt configureren, moet u de eigenaar van het Azure-abonnement zijn en een eigenaar of inzender in de hoofdbeheergroep. Zie Een privékoppeling maken voor het beheren van Azure-resources voor meer informatie.

Geavanceerd configuratie

Er zijn verschillende andere geavanceerde configuraties die u kunt toepassen op werkruimten. Voor complexe resourceconfiguraties raadpleegt u ook implementatieopties op basis van sjablonen, waaronder Azure Resource Manager.

Door klant beheerde sleutels

Werkruimtemetagegevens worden standaard opgeslagen in een Azure Cosmos DB-exemplaar dat Door Microsoft wordt onderhouden en versleuteld met behulp van door Microsoft beheerde sleutels. In plaats van de door Microsoft beheerde sleutel te gebruiken, kunt u uw eigen sleutel opgeven. Met uw eigen sleutel maakt u een extra set resources in uw Azure-abonnement om uw gegevens op te slaan.

Notitie

Azure Cosmos DB wordt niet gebruikt voor het opslaan van modelprestatiegegevens, gegevens die zijn vastgelegd door experimenten of gegevens die zijn vastgelegd vanuit uw modelimplementaties.

Als u een werkruimte wilt maken die gebruikmaakt van uw eigen sleutel, gebruikt u de customer_managed_key parameter in het configuratiebestand van de YAML-werkruimte en geeft u de resource-id op van de inhoud key_vault en de key_uri sleutel in de kluis.

$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

Zie Gegevensversleuteling met Azure Machine Learning voor meer informatie over de resources die worden gemaakt wanneer u uw eigen sleutel gebruikt voor versleuteling.

Notitie

Als u de toegevoegde gegevensversleutelingsbronnen wilt beheren, gebruikt u Identiteits- en toegangsbeheer om de Machine Learning-app met inzendermachtigingen voor uw abonnement te autoriseren.

Werkruimten met een hoge bedrijfsimpact

Als u de gegevens wilt beperken die Door Microsoft in uw werkruimte worden verzameld , kunt u een werkruimte met een hoge bedrijfsimpact opgeven door de hbi_workspace eigenschap in het YAML-configuratiebestand in te stellen op TRUE. U kunt alleen zakelijke impact instellen wanneer u een werkruimte maakt. U kunt deze instelling niet wijzigen nadat de werkruimte is gemaakt.

Zie Enterprise-beveiliging voor Azure Machine Learning voor meer informatie over door de klant beheerde sleutels en werkruimte met hoge bedrijfsimpact.

Azure CLI gebruiken om werkruimten te beheren

U kunt de az ml-werkruimteopdrachten gebruiken om werkruimten te beheren.

Werkruimtegegevens ophalen

Gebruik de volgende opdracht om informatie over een werkruimte op te halen:

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

Zie az ml workspace show voor meer informatie.

Een werkruimte bijwerken

Gebruik de volgende opdracht om een werkruimte bij te werken:

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

Met de volgende opdracht wordt bijvoorbeeld een werkruimte bijgewerkt om openbare netwerktoegang in te schakelen:

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

Zie az ml werkruimte update voor meer informatie.

Sleutels synchroniseren voor afhankelijke resources

Als u de toegangssleutels wijzigt voor een van de resources die uw werkruimte gebruikt, duurt het ongeveer een uur voordat de werkruimte wordt gesynchroniseerd met de nieuwe sleutels. Als u wilt afdwingen dat de werkruimte de nieuwe sleutels onmiddellijk synchroniseert, gebruikt u de volgende opdracht:

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

Een werkruimte verplaatsen

Het verplaatsen van een Azure Machine Learning-werkruimte is momenteel in preview. Zie Azure Machine Learning-werkruimten verplaatsen tussen abonnementen (preview) voor meer informatie.

Een werkruimte verwijderen

Als u een werkruimte wilt verwijderen nadat deze niet meer nodig is, gebruikt u de volgende opdracht:

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

Het standaardgedrag voor Azure Machine Learning is het voorlopig verwijderen van de werkruimte. De werkruimte wordt niet onmiddellijk verwijderd, maar wordt in plaats daarvan gemarkeerd voor verwijdering. Zie Voorlopig verwijderen voor meer informatie.

Waarschuwing

Als voorlopig verwijderen is ingeschakeld voor de werkruimte, kan deze na verwijdering worden hersteld. Als voorlopig verwijderen niet is ingeschakeld of u de optie selecteert om de werkruimte permanent te verwijderen, kan deze niet worden hersteld. Zie Een verwijderde werkruimte herstellen voor meer informatie.

Als u een werkruimte verwijdert, worden de application insights, het opslagaccount, de sleutelkluis of het containerregister dat door de werkruimte wordt gebruikt, niet verwijderd. Als u de werkruimte, de afhankelijke resources en alle andere Azure-resources in de resourcegroep wilt verwijderen, kunt u de resourcegroep verwijderen. Gebruik de volgende opdracht om de resourcegroep te verwijderen:

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

Zie az ml workspace delete voor meer informatie.

Resourceproviderfouten oplossen

Wanneer u een Azure Machine Learning-werkruimte maakt of een resource die door de werkruimte wordt gebruikt, ontvangt u mogelijk een foutbericht die op een van de volgende berichten lijkt:

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

De meeste resourceproviders worden automatisch geregistreerd, maar niet allemaal. Als u dit bericht ontvangt, moet u de vermelde provider registreren.

De volgende tabel bevat een lijst met de resourceproviders die vereist zijn voor Azure Machine Learning:

Resourceprovider Waarom dit nodig is
Microsoft.MachineLearningServices De Azure Machine Learning-werkruimte maken.
Microsoft.Storage Azure Storage-account wordt gebruikt als de standaardopslag voor de werkruimte.
Microsoft.ContainerRegistry Azure Container Registry wordt door de werkruimte gebruikt om Docker-installatiekopieën te bouwen.
Microsoft.KeyVault Azure Key Vault wordt door de werkruimte gebruikt om geheimen op te slaan.
Microsoft.Notebooks Geïntegreerde notebooks in een Azure Machine Learning-rekenproces.
Microsoft.ContainerService Als u van plan bent getrainde modellen te implementeren in Azure Kubernetes Services.

Als u van plan bent om een door de klant beheerde sleutel te gebruiken met Azure Machine Learning, moeten de volgende serviceproviders zijn geregistreerd:

Resourceprovider Waarom dit nodig is
Microsoft.DocumentDB Azure CosmosDB-exemplaar dat metagegevens voor de werkruimte registreert.
Microsoft.Search Azure Search biedt indexeringsmogelijkheden voor de werkruimte.

Als u van plan bent om een beheerd virtueel netwerk te gebruiken met Azure Machine Learning, moet de resourceprovider Microsoft.Network worden geregistreerd. Deze resourceprovider wordt door de werkruimte gebruikt bij het maken van privé-eindpunten voor het beheerde virtuele netwerk.

Zie Fouten oplossen voor de registratie van de resourceprovider voor informatie over het registreren van resourceproviders.