Tworzenie, uruchamianie i usuwanie zasobów usługi Azure Machine Edukacja przy użyciu interfejsu REST

Istnieje kilka sposobów zarządzania zasobami usługi Azure Machine Edukacja. Możesz użyć portalu, interfejsu wiersza polecenia lub zestawu SDK języka Python. Możesz też wybrać interfejs API REST. Interfejs API REST używa czasowników HTTP w standardowy sposób do tworzenia, pobierania, aktualizowania i usuwania zasobów. Interfejs API REST współpracuje z dowolnym językiem lub narzędziem, które mogą wysyłać żądania HTTP. Prosta struktura REST często sprawia, że dobrym wyborem w środowiskach skryptowych i automatyzacji metodyki MLOps.

W tym artykule omówiono sposób wykonywania następujących zadań:

  • Pobieranie tokenu autoryzacji
  • Tworzenie prawidłowo sformatowanego żądania REST przy użyciu uwierzytelniania jednostki usługi
  • Używanie żądań GET do pobierania informacji o zasobach hierarchicznych usługi Azure Machine Edukacja
  • Tworzenie i modyfikowanie zasobów przy użyciu żądań PUT i POST
  • Tworzenie obszarów roboczych usługi Azure Machine Edukacja za pomocą żądań PUT
  • Czyszczenie zasobów przy użyciu żądań DELETE

Wymagania wstępne

Pobieranie tokenu uwierzytelniania jednostki usługi

Administracja istracyjne żądania REST są uwierzytelniane za pomocą niejawnego przepływu OAuth2. Ten przepływ uwierzytelniania używa tokenu dostarczonego przez jednostkę usługi subskrypcji. Aby pobrać ten token, potrzebne są następujące elementy:

  • Identyfikator dzierżawy (identyfikujący organizację, do której należy Twoja subskrypcja)
  • Identyfikator klienta (który zostanie skojarzony z utworzonym tokenem)
  • Klucz tajny klienta (który należy zabezpieczyć)

Te wartości powinny pochodzić z odpowiedzi na utworzenie jednostki usługi. Te wartości zostały omówione w temacie Konfigurowanie uwierzytelniania dla usługi Azure Machine Edukacja zasobów i przepływów pracy. Jeśli używasz subskrypcji firmy, być może nie masz uprawnień do tworzenia jednostki usługi. W takim przypadku należy użyć bezpłatnej lub płatnej subskrypcji osobistej.

Aby pobrać token:

  1. Otwórz okno terminalu
  2. Wprowadź następujący kod w wierszu polecenia
  3. Zastąp własne wartości wartości , <YOUR-TENANT-ID><YOUR-CLIENT-ID>i <YOUR-CLIENT-SECRET>. W tym artykule ciągi otoczone nawiasami kątowymi to zmienne, które należy zastąpić własnymi odpowiednimi wartościami.
  4. Uruchamianie polecenia
curl -X POST https://login.microsoftonline.com/<YOUR-TENANT-ID>/oauth2/token \
-d "grant_type=client_credentials&resource=https%3A%2F%2Fmanagement.azure.com%2F&client_id=<YOUR-CLIENT-ID>&client_secret=<YOUR-CLIENT-SECRET>" \

Odpowiedź powinna dostarczyć token dostępu dobry przez jedną godzinę:

{
    "token_type": "Bearer",
    "expires_in": "3599",
    "ext_expires_in": "3599",
    "expires_on": "1578523094",
    "not_before": "1578519194",
    "resource": "https://management.azure.com/",
    "access_token": "YOUR-ACCESS-TOKEN"
}

Zanotuj token, ponieważ użyjesz go do uwierzytelniania wszystkich żądań administracyjnych. W tym celu należy ustawić nagłówek autoryzacji we wszystkich żądaniach:

curl -h "Authorization:Bearer <YOUR-ACCESS-TOKEN>" ...more args...

Uwaga

Wartość rozpoczyna się od ciągu "Bearer", w tym pojedynczego miejsca przed dodaniem tokenu.

Pobieranie listy grup zasobów skojarzonych z subskrypcją

Aby pobrać listę grup zasobów skojarzonych z subskrypcją, uruchom polecenie:

curl https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups?api-version=2022-04-01 -H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Na platformie Azure opublikowano wiele interfejsów API REST. Każdy dostawca usług aktualizuje swój interfejs API samodzielnie, ale robi to bez przerywania istniejących programów. Dostawca usług używa argumentu api-version w celu zapewnienia zgodności.

Ważne

Argument api-version różni się od usługi do usługi. Na przykład w przypadku usługi Machine Edukacja Service bieżąca wersja interfejsu API to 2023-10-01. Aby znaleźć najnowszą wersję interfejsu API dla innych usług platformy Azure, zobacz dokumentację interfejsu API REST platformy Azure dla określonej usługi.

Wszystkie wywołania REST powinny ustawić api-version argument na oczekiwaną wartość. Można polegać na składni i semantyce określonej wersji, nawet gdy interfejs API nadal ewoluuje. Jeśli wyślesz żądanie do dostawcy bez argumentu api-version , odpowiedź będzie zawierać czytelną dla człowieka listę obsługiwanych wartości.

Powyższe wywołanie spowoduje skompaktowaną odpowiedź w formacie JSON formularza:

{
    "value": [
        {
            "id": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourceGroups/RG1",
            "name": "RG1",
            "type": "Microsoft.Resources/resourceGroups",
            "location": "westus2",
            "properties": {
                "provisioningState": "Succeeded"
            }
        },
        {
            "id": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourceGroups/RG2",
            "name": "RG2",
            "type": "Microsoft.Resources/resourceGroups",
            "location": "eastus",
            "properties": {
                "provisioningState": "Succeeded"
            }
        }
    ]
}

Przechodzenie do szczegółów obszarów roboczych i ich zasobów

Aby pobrać zestaw obszarów roboczych w grupie zasobów, uruchom następujące polecenie, zastępując <YOUR-SUBSCRIPTION-ID>wartości , <YOUR-RESOURCE-GROUP>i <YOUR-ACCESS-TOKEN>:

curl https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.MachineLearningServices/workspaces/?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Ponownie otrzymasz listę JSON, tym razem zawierającą listę, z których każdy element zawiera szczegóły obszaru roboczego:

{
    "id": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourceGroups/DeepLearningResourceGroup/providers/Microsoft.MachineLearningServices/workspaces/my-workspace",
    "name": "my-workspace",
    "type": "Microsoft.MachineLearningServices/workspaces",
    "location": "centralus",
    "tags": {},
    "etag": null,
    "properties": {
        "friendlyName": "",
        "description": "",
        "creationTime": "2023-01-03T19:56:09.7588299+00:00",
        "storageAccount": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourcegroups/DeepLearningResourceGroup/providers/microsoft.storage/storageaccounts/myworkspace0275623111",
        "containerRegistry": null,
        "keyVault": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourcegroups/DeepLearningResourceGroup/providers/microsoft.keyvault/vaults/myworkspace2525649324",
        "applicationInsights": "/subscriptions/12345abc-abbc-1b2b-1234-57ab575a5a5a/resourcegroups/DeepLearningResourceGroup/providers/microsoft.insights/components/myworkspace2053523719",
        "hbiWorkspace": false,
        "workspaceId": "cba12345-abab-abab-abab-ababab123456",
        "subscriptionState": null,
        "subscriptionStatusChangeTimeStampUtc": null,
        "discoveryUrl": "https://centralus.experiments.azureml.net/discovery"
    },
    "identity": {
        "type": "SystemAssigned",
        "principalId": "abcdef1-abab-1234-1234-abababab123456",
        "tenantId": "1fedcba-abab-1234-1234-abababab123456"
    },
    "sku": {
        "name": "Basic",
        "tier": "Basic"
    }
}

Aby pracować z zasobami w obszarze roboczym, przełączysz się z ogólnego serwera management.azure.com na serwer interfejsu API REST specyficzny dla lokalizacji obszaru roboczego. Zanotuj discoveryUrl wartość klucza w powyższej odpowiedzi JSON. Jeśli otrzymasz ten adres URL, otrzymasz odpowiedź podobną do następującej:

{
  "api": "https://centralus.api.azureml.ms",
  "catalog": "https://catalog.cortanaanalytics.com",
  "experimentation": "https://centralus.experiments.azureml.net",
  "gallery": "https://gallery.cortanaintelligence.com/project",
  "history": "https://centralus.experiments.azureml.net",
  "hyperdrive": "https://centralus.experiments.azureml.net",
  "labeling": "https://centralus.experiments.azureml.net",
  "modelmanagement": "https://centralus.modelmanagement.azureml.net",
  "pipelines": "https://centralus.aether.ms",
  "studiocoreservices": "https://centralus.studioservice.azureml.com"
}

Wartość api odpowiedzi to adres URL serwera, który będzie używany do obsługi większej liczby żądań. Aby wyświetlić listę eksperymentów, na przykład wyślij następujące polecenie. Zastąp REGIONAL-API-SERVER ciąg wartością api odpowiedzi (na przykład centralus.api.azureml.ms). Zastąp YOUR-SUBSCRIPTION-IDrównież wartości , YOUR-RESOURCE-GROUP, YOUR-WORKSPACE-NAMEi YOUR-ACCESS-TOKEN jak zwykle:

curl https://<REGIONAL-API-SERVER>/history/v1.0/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/experiments?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Podobnie, aby pobrać zarejestrowane modele w obszarze roboczym, wyślij:

curl https://<REGIONAL-API-SERVER>/modelmanagement/v1.0/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/models?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Zwróć uwagę, że aby wyświetlić listę eksperymentów, ścieżka zaczyna się od history/v1.0 chwili wyświetlania listy modeli, a ścieżka zaczyna się od modelmanagement/v1.0. Interfejs API REST jest podzielony na kilka grup operacyjnych, z których każda ma odrębną ścieżkę.

Obszar Ścieżka
Artefakty /rest/api/azureml
Magazyny danych /azure/machine-learning/how-to-access-data
Dostrajanie hiperparametrów hyperdrive/v1.0/
Modele modelmanagement/v1.0/
Hist. przeb. execution/v1.0/ i history/v1.0/

Interfejs API REST można eksplorować przy użyciu ogólnego wzorca:

Składnik adresu URL Przykład
https://
REGIONAL-API-SERVER/ centralus.api.azureml.ms/
ścieżka operacji/ historia/wersja 1.0/
subscriptions/YOUR-SUBSCRIPTION-ID/ subscriptions/abcde123-abab-abab-1234-0123456789abc/
resourceGroups/YOUR-RESOURCE-GROUP/ resourceGroups/MyResourceGroup/
providers/operation-provider/ providers/Microsoft.Machine Edukacja Services/
provider-resource-path/ workspaces/MyWorkspace/experiments/FirstExperiment/runs/1/
operations-endpoint/ artefakty/metadane/

Tworzenie i modyfikowanie zasobów przy użyciu żądań PUT i POST

Oprócz pobierania zasobów za pomocą czasownika GET interfejs API REST obsługuje tworzenie wszystkich zasobów niezbędnych do trenowania, wdrażania i monitorowania rozwiązań uczenia maszynowego.

Trenowanie i uruchamianie modeli uczenia maszynowego wymaga zasobów obliczeniowych. Możesz wyświetlić listę zasobów obliczeniowych obszaru roboczego za pomocą następujących elementów:

curl https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/computes?api-version=2023-10-01 \
-H "Authorization:Bearer <YOUR-ACCESS-TOKEN>"

Aby utworzyć lub zastąpić nazwany zasób obliczeniowy, użyjesz żądania PUT. W poniższych elementach oprócz znanych obecnie zastąpień , , i , zastąp YOUR-COMPUTE-NAMEwartości location, , vmSize, vmPriorityscaleSettingsadminUserNamei .adminUserPasswordYOUR-ACCESS-TOKENYOUR-WORKSPACE-NAMEYOUR-RESOURCE-GROUPYOUR-SUBSCRIPTION-ID Następujące polecenie tworzy dedykowany, pojedynczy węzeł Standard_D1 (podstawowy zasób obliczeniowy procesora CPU), który będzie skalowany w dół po 30 minutach:

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/computes/<YOUR-COMPUTE-NAME>?api-version=2023-10-01' \
  -H 'Authorization:Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "eastus",
    "properties": {
        "computeType": "AmlCompute",
        "properties": {
            "vmSize": "Standard_D1",
            "vmPriority": "Dedicated",
            "scaleSettings": {
                "maxNodeCount": 1,
                "minNodeCount": 0,
                "nodeIdleTimeBeforeScaleDown": "PT30M"
            }
        }
    },
    "userAccountCredentials": {
        "adminUserName": "<ADMIN_USERNAME>",
        "adminUserPassword": "<ADMIN_PASSWORD>"
    }
}'

Uwaga

W terminalach systemu Windows może być konieczne ucieczka symboli podwójnego cudzysłowu podczas wysyłania danych JSON. Oznacza to, że tekst, taki jak "location" staje się \"location\".

Pomyślne żądanie otrzyma 201 Created odpowiedź, ale pamiętaj, że ta odpowiedź oznacza po prostu rozpoczęcie procesu aprowizacji. Aby potwierdzić pomyślne ukończenie, musisz sondować (lub użyć portalu).

Tworzenie obszaru roboczego przy użyciu interfejsu REST

Każdy obszar roboczy usługi Azure Machine Edukacja ma zależność od czterech innych zasobów platformy Azure: zasobu usługi Azure Container Registry, usługi Azure Key Vault, aplikacja systemu Azure Szczegółowe informacje i konta usługi Azure Storage. Nie można utworzyć obszaru roboczego, dopóki te zasoby nie będą istnieć. Zapoznaj się z dokumentacją interfejsu API REST, aby uzyskać szczegółowe informacje na temat tworzenia każdego takiego zasobu.

Aby utworzyć obszar roboczy, umieść wywołanie podobne do następującego: management.azure.com. Chociaż to wywołanie wymaga ustawienia dużej liczby zmiennych, jest ona strukturalnie identyczna z innymi wywołaniami omówionymi w tym artykule.

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-NEW-WORKSPACE-NAME>?api-version=2023-10-01' \
  -H 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "AZURE-LOCATION>",
    "identity" : {
        "type" : "systemAssigned"
    },
    "properties": {
        "friendlyName" : "<YOUR-WORKSPACE-FRIENDLY-NAME>",
        "description" : "<YOUR-WORKSPACE-DESCRIPTION>",
        "containerRegistry" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ContainerRegistry/registries/<YOUR-REGISTRY-NAME>",
        keyVault" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.Keyvault/vaults/<YOUR-KEYVAULT-NAME>",
        "applicationInsights" : "subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.insights/components/<YOUR-APPLICATION-INSIGHTS-NAME>",
        "storageAccount" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.Storage/storageAccounts/<YOUR-STORAGE-ACCOUNT-NAME>"
    }
}'

Powinna zostać zwrócona 202 Accepted odpowiedź, a w zwróconych nagłówkach identyfikator Location URI. Ten identyfikator URI można uzyskać, aby uzyskać informacje na temat wdrożenia, w tym przydatne informacje debugowania, jeśli wystąpił problem z jednym z zasobów zależnych (na przykład jeśli nie pamiętasz włączenia dostępu administratora do rejestru kontenerów).

Tworzenie obszaru roboczego przy użyciu tożsamości zarządzanej przypisanej przez użytkownika

Podczas tworzenia obszaru roboczego można określić tożsamość zarządzaną przypisaną przez użytkownika, która będzie używana do uzyskiwania dostępu do skojarzonych zasobów: ACR, KeyVault, Storage i App Szczegółowe informacje. Aby utworzyć obszar roboczy z tożsamością zarządzaną przypisaną przez użytkownika, użyj poniższej treści żądania.

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-NEW-WORKSPACE-NAME>?api-version=2023-10-01' \
  -H 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "AZURE-LOCATION>",
    "identity": {
      "type": "SystemAssigned,UserAssigned",
      "userAssignedIdentities": {
        "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ManagedIdentity/userAssignedIdentities/<YOUR-MANAGED-IDENTITY>": {}
      }
    },
    "properties": {
        "friendlyName" : "<YOUR-WORKSPACE-FRIENDLY-NAME>",
        "description" : "<YOUR-WORKSPACE-DESCRIPTION>",
        "containerRegistry" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ContainerRegistry/registries/<YOUR-REGISTRY-NAME>",
        keyVault" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.Keyvault/vaults/<YOUR-KEYVAULT-NAME>",
        "applicationInsights" : "subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.insights/components/<YOUR-APPLICATION-INSIGHTS-NAME>",
        "storageAccount" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.Storage/storageAccounts/<YOUR-STORAGE-ACCOUNT-NAME>"
    }
}'

Tworzenie obszaru roboczego przy użyciu kluczy szyfrowania zarządzanych przez klienta

Domyślnie metadane obszaru roboczego są przechowywane w wystąpieniu usługi Azure Cosmos DB, które utrzymuje firma Microsoft. Te dane są szyfrowane przy użyciu kluczy zarządzanych przez firmę Microsoft. Zamiast używać klucza zarządzanego przez firmę Microsoft, możesz również podać własny klucz. Spowoduje to utworzenie innego zestawu zasobów w ramach subskrypcji platformy Azure w celu przechowywania danych.

Aby utworzyć obszar roboczy, który używa kluczy do szyfrowania, należy spełnić następujące wymagania wstępne:

  • Jednostka usługi Azure Machine Edukacja musi mieć dostęp współautora do subskrypcji platformy Azure.
  • Musisz mieć istniejącą usługę Azure Key Vault, która zawiera klucz szyfrowania.
  • Usługa Azure Key Vault musi istnieć w tym samym regionie świadczenia usługi Azure, w którym utworzysz obszar roboczy usługi Azure Machine Edukacja.
  • Usługa Azure Key Vault musi mieć włączoną ochronę usuwania nietrwałego i przeczyszczania, aby chronić przed utratą danych, jeśli wystąpiło przypadkowe usunięcie.
  • Musisz mieć zasady dostępu w usłudze Azure Key Vault, które udzielają dostępu do aplikacji usługi Azure Cosmos DB, a także uzyskiwania, opakowywanie i odpakowywanie.

Aby utworzyć obszar roboczy, który używa tożsamości zarządzanej przypisanej przez użytkownika i kluczy zarządzanych przez klienta do szyfrowania, użyj poniższej treści żądania. W przypadku korzystania z tożsamości zarządzanej przypisanej przez użytkownika dla obszaru roboczego ustaw userAssignedIdentity również właściwość na identyfikator zasobu tożsamości zarządzanej.

curl -X PUT \
  'https://management.azure.com/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-NEW-WORKSPACE-NAME>?api-version=2023-10-01' \
  -H 'Authorization: Bearer <YOUR-ACCESS-TOKEN>' \
  -H 'Content-Type: application/json' \
  -d '{
    "location": "eastus2euap",
    "identity": {
      "type": "SystemAssigned"
    },
    "properties": {
      "friendlyName": "<YOUR-WORKSPACE-FRIENDLY-NAME>",
      "description": "<YOUR-WORKSPACE-DESCRIPTION>",
      "containerRegistry" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.ContainerRegistry/registries/<YOUR-REGISTRY-NAME>",
      "keyVault" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>\
/providers/Microsoft.Keyvault/vaults/<YOUR-KEYVAULT-NAME>",
      "applicationInsights" : "subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.insights/components/<YOUR-APPLICATION-INSIGHTS-NAME>",
      "storageAccount" : "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.Storage/storageAccounts/<YOUR-STORAGE-ACCOUNT-NAME>",
      "encryption": {
        "status": "Enabled",
        "identity": {
          "userAssignedIdentity": null
        },      
        "keyVaultProperties": {
           "keyVaultArmId": "/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/\
providers/Microsoft.KeyVault/vaults/<YOUR-VAULT>",
           "keyIdentifier": "https://<YOUR-VAULT>.vault.azure.net/keys/<YOUR-KEY>/<YOUR-KEY-VERSION>",
           "identityClientId": ""
        }
      },
      "hbiWorkspace": false
    }
}'

Usuwanie zasobów, których już nie potrzebujesz

Niektóre, ale nie wszystkie, zasoby obsługują czasownik DELETE. Przed zatwierdzeniem interfejsu API do interfejsu API REST sprawdź dokumentację interfejsu API w celu usunięcia przypadków użycia. Aby usunąć model, na przykład możesz użyć:

curl
  -X DELETE \
'https://<REGIONAL-API-SERVER>/modelmanagement/v1.0/subscriptions/<YOUR-SUBSCRIPTION-ID>/resourceGroups/<YOUR-RESOURCE-GROUP>/providers/Microsoft.MachineLearningServices/workspaces/<YOUR-WORKSPACE-NAME>/models/<YOUR-MODEL-ID>?api-version=2022-05-01' \
  -H 'Authorization:Bearer <YOUR-ACCESS-TOKEN>' 

Rozwiązywanie problemów

Błędy dostawcy zasobów

Podczas tworzenia obszaru roboczego usługi Azure Machine Edukacja lub zasobu używanego przez obszar roboczy może zostać wyświetlony błąd podobny do następujących komunikatów:

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

Większość dostawców zasobów jest automatycznie rejestrowana, ale nie wszystkie. Jeśli zostanie wyświetlony ten komunikat, musisz zarejestrować wymienionego dostawcę.

Poniższa tabela zawiera listę dostawców zasobów wymaganych przez usługę Azure Machine Edukacja:

Dostawca zasobów Dlaczego jest to potrzebne
Microsoft.Machine Edukacja Services Tworzenie obszaru roboczego usługi Azure Machine Edukacja.
Microsoft.Storage Konto usługi Azure Storage jest używane jako domyślny magazyn dla obszaru roboczego.
Microsoft.ContainerRegistry Usługa Azure Container Registry jest używana przez obszar roboczy do tworzenia obrazów platformy Docker.
Microsoft.KeyVault Usługa Azure Key Vault jest używana przez obszar roboczy do przechowywania wpisów tajnych.
Microsoft.Notebooks Zintegrowane notesy na maszynie Azure Edukacja wystąpienia obliczeniowego.
Microsoft.ContainerService Jeśli planujesz wdrażanie wytrenowanych modeli w usługach Azure Kubernetes Services.

Jeśli planujesz używanie klucza zarządzanego przez klienta z usługą Azure Machine Edukacja, należy zarejestrować następujących dostawców usług:

Dostawca zasobów Dlaczego jest to potrzebne
Microsoft.DocumentDB Wystąpienie usługi Azure CosmosDB, które rejestruje metadane obszaru roboczego.
Microsoft.Search Usługa Azure Search udostępnia funkcje indeksowania dla obszaru roboczego.

Jeśli planujesz korzystanie z zarządzanej sieci wirtualnej z usługą Azure Machine Edukacja, należy zarejestrować dostawcę zasobów Microsoft.Network. Ten dostawca zasobów jest używany przez obszar roboczy podczas tworzenia prywatnych punktów końcowych dla zarządzanej sieci wirtualnej.

Aby uzyskać informacje na temat rejestrowania dostawców zasobów, zobacz Rozwiązywanie błędów dotyczących rejestracji dostawcy zasobów.

Przenoszenie obszaru roboczego

Ostrzeżenie

Przenoszenie obszaru roboczego usługi Azure Machine Edukacja do innej subskrypcji lub przenoszenie subskrypcji będącą właścicielem do nowej dzierżawy nie jest obsługiwane. Może to spowodować błędy.

Usuwanie usługi Azure Container Registry

Obszar roboczy usługi Azure Machine Edukacja używa usługi Azure Container Registry (ACR) na potrzeby niektórych operacji. Spowoduje to automatyczne utworzenie wystąpienia usługi ACR, gdy będzie ono najpierw potrzebne.

Ostrzeżenie

Po utworzeniu usługi Azure Container Registry dla obszaru roboczego nie usuwaj go. Spowoduje to przerwanie obszaru roboczego usługi Azure Machine Edukacja.

Następne kroki