Tworzenie obszaru roboczego dla usługi Azure Machine Learning za pomocą szablonu usługi Azure Resource Manager

W tym artykule przedstawiono kilka sposobów tworzenia obszaru roboczego usługi Azure Machine Edukacja przy użyciu szablonów usługi Azure Resource Manager. Szablon usługi Resource Manager ułatwia tworzenie zasobów jako pojedynczej, skoordynowanej operacji. Szablon to dokument JSON, który definiuje zasoby potrzebne do wdrożenia. Może również określać parametry wdrożenia. Parametry są używane do podawania wartości wejściowych podczas korzystania z szablonu.

Aby uzyskać więcej informacji, zobacz Wdrażanie aplikacji przy użyciu szablonu usługi Azure Resource Manager.

Wymagania wstępne

Ograniczenia

  • Podczas tworzenia nowego obszaru roboczego można automatycznie tworzyć usługi wymagane przez obszar roboczy lub korzystać z istniejących usług. Jeśli chcesz używać istniejących usług z innej subskrypcji platformy Azure niż obszar roboczy, musisz zarejestrować przestrzeń nazw usługi Azure Machine Edukacja w subskrypcji zawierającej te usługi. Na przykład utworzenie obszaru roboczego w subskrypcji A korzystającej z konta magazynu z subskrypcji B, przestrzeń nazw usługi Azure Machine Edukacja musi być zarejestrowana w subskrypcji B, zanim będzie można używać konta magazynu z obszarem roboczym.

    Dostawca zasobów dla usługi Azure Machine Edukacja to Microsoft.Machine Edukacja Services. Aby uzyskać informacje na temat sposobu jego rejestrowania i rejestrowania, zobacz artykuł Azure resource providers and types (Dostawcy zasobów i typy platformy Azure).

    Ważne

    Dotyczy to tylko zasobów udostępnianych podczas tworzenia obszaru roboczego; Konta usługi Azure Storage, rejestr kontenerów platformy Azure, usługa Azure Key Vault i Szczegółowe informacje aplikacji.

  • Przykładowy szablon może nie zawsze używać najnowszej wersji interfejsu API dla usługi Azure Machine Edukacja. Przed użyciem szablonu zalecamy zmodyfikowanie go w celu korzystania z najnowszych wersji interfejsu API. Aby uzyskać informacje na temat najnowszych wersji interfejsu API dla usługi Azure Machine Edukacja, zobacz interfejs API REST usługi Azure Machine Edukacja.

    Napiwek

    Każda usługa platformy Azure ma własny zestaw wersji interfejsu API. Aby uzyskać informacje na temat interfejsu API dla określonej usługi, zapoznaj się z informacjami o usłudze w dokumentacji interfejsu API REST platformy Azure.

    Aby zaktualizować wersję interfejsu API, znajdź "apiVersion": "YYYY-MM-DD" wpis dla typu zasobu i zaktualizuj go do najnowszej wersji. Poniższy przykład to wpis dla usługi Azure Machine Edukacja:

    "type": "Microsoft.MachineLearningServices/workspaces",
    "apiVersion": "2023-10-01",
    

Wiele obszarów roboczych w tej samej sieci wirtualnej

Szablon nie obsługuje wielu obszarów roboczych usługi Azure Machine Edukacja wdrożonych w tej samej sieci wirtualnej. Dzieje się tak, ponieważ szablon tworzy nowe strefy DNS podczas wdrażania.

Jeśli chcesz utworzyć szablon, który wdraża wiele obszarów roboczych w tej samej sieci wirtualnej, skonfiguruj go ręcznie (przy użyciu witryny Azure Portal lub interfejsu wiersza polecenia), a następnie użyj witryny Azure Portal do wygenerowania szablonu.

Szablon usługi Resource Manager obszaru roboczego

Szablon usługi Azure Resource Manager używany w tym dokumencie można znaleźć w katalogu microsoft.machineleaerningservices/machine-learning-workspace-vnet w repozytorium GitHub szablonów szybkiego startu platformy Azure.

Ten szablon tworzy następujące usługi platformy Azure:

  • Konto magazynu platformy Azure
  • Azure Key Vault
  • Azure Application Insights
  • Azure Container Registry
  • Obszar roboczy usługi Azure Machine Learning

Grupa zasobów to kontener, który przechowuje usługi. Różne usługi są wymagane przez obszar roboczy usługi Azure Machine Edukacja.

Przykładowy szablon ma dwa wymagane parametry:

  • Lokalizacja, w której zostaną utworzone zasoby.

    Szablon będzie używać wybranej lokalizacji dla większości zasobów. Wyjątkiem jest usługa application Szczegółowe informacje, która nie jest dostępna we wszystkich lokalizacjach, w których znajdują się inne usługi. Jeśli wybierzesz lokalizację, w której nie jest dostępna, usługa zostanie utworzona w lokalizacji Południowo-środkowe stany USA.

  • WorkspaceName, czyli przyjazna nazwa obszaru roboczego usługi Azure Machine Edukacja.

    Uwaga

    Nazwa obszaru roboczego jest niewrażliwa na wielkość liter.

    Nazwy innych usług są generowane losowo.

Napiwek

Szablon skojarzony z tym dokumentem tworzy nową usługę Azure Container Registry, ale można również utworzyć nowy obszar roboczy bez tworzenia rejestru kontenerów. Zostanie utworzony podczas wykonywania operacji wymagającej rejestru kontenerów. Na przykład trenowanie lub wdrażanie modelu.

Możesz również odwołać się do istniejącego rejestru kontenerów lub konta magazynu w szablonie usługi Azure Resource Manager, zamiast tworzyć nowe. W tym celu należy użyć tożsamości zarządzanej (wersja zapoznawcza) lub włączyć konto administratora dla rejestru kontenerów.

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.

Aby uzyskać więcej informacji na temat szablonów, zobacz następujące artykuły:

Wdrażanie szablonu

Aby wdrożyć szablon, musisz utworzyć grupę zasobów.

Jeśli wolisz korzystać z graficznego interfejsu użytkownika, zobacz sekcję witryny Azure Portal .

az group create --name "examplegroup" --location "eastus"

Po pomyślnym utworzeniu grupy zasobów wdróż szablon za pomocą następującego polecenia:

az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" location="eastus"

Domyślnie wszystkie zasoby utworzone w ramach szablonu są nowe. Istnieje jednak również możliwość korzystania z istniejących zasobów. Podając dodatkowe parametry szablonu, możesz użyć istniejących zasobów. Jeśli na przykład chcesz użyć istniejącego konta magazynu, ustaw wartość storageAccountOption na istniejącą i podaj nazwę konta magazynu w parametrze storageAccountName .

Ważne

Jeśli chcesz użyć istniejącego konta usługi Azure Storage, nie może to być konto w warstwie Premium (Premium_LRS i Premium_GRS). Nie może również mieć hierarchicznej przestrzeni nazw (używanej z usługą Azure Data Lake Storage Gen2). Magazyn w warstwie Premium ani hierarchiczna przestrzeń nazw nie są obsługiwane przy użyciu domyślnego konta magazynu obszaru roboczego. Magazyn w warstwie Premium ani hierarchiczne przestrzenie nazw nie są obsługiwane przy użyciu domyślnego konta magazynu obszaru roboczego. Możesz użyć magazynu w warstwie Premium lub hierarchicznej przestrzeni nazw z kontami magazynu innego niż domyślne .

az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" \
      location="eastus" \
      storageAccountOption="existing" \
      storageAccountName="existingstorageaccountname"

Wdrażanie zaszyfrowanego obszaru roboczego

Poniższy przykładowy szablon przedstawia sposób tworzenia obszaru roboczego z trzema ustawieniami:

  • Włącz ustawienia wysokiej poufności dla obszaru roboczego. Spowoduje to utworzenie nowego wystąpienia usługi Azure Cosmos DB.
  • Włącz szyfrowanie dla obszaru roboczego.
  • Używa istniejącej usługi Azure Key Vault do pobierania kluczy zarządzanych przez klienta. Klucze zarządzane przez klienta służą do tworzenia nowego wystąpienia usługi Azure Cosmos DB dla obszaru roboczego.

Ważne

Po utworzeniu obszaru roboczego nie można zmienić ustawień poufnych danych, szyfrowania, identyfikatora magazynu kluczy lub identyfikatorów kluczy. Aby zmienić te wartości, musisz utworzyć nowy obszar roboczy przy użyciu nowych wartości.

Aby uzyskać więcej informacji, zobacz Klucze zarządzane przez klienta.

Ważne

Przed użyciem tego szablonu należy spełnić określone wymagania dotyczące subskrypcji:

  • Musisz mieć istniejącą usługę Azure Key Vault, która zawiera klucz szyfrowania.
  • Usługa Azure Key Vault musi znajdować się w tym samym regionie, w którym planujesz utworzyć obszar roboczy usługi Azure Machine Edukacja.
  • Należy określić identyfikator usługi Azure Key Vault i identyfikator URI klucza szyfrowania.

Aby uzyskać instrukcje dotyczące tworzenia magazynu i klucza, zobacz Konfigurowanie kluczy zarządzanych przez klienta.

Aby uzyskać wartości parametrów cmk_keyvault (ID usługi Key Vault) i resource_cmk_uri (identyfikator URI klucza) wymaganych przez ten szablon, wykonaj następujące kroki:

  1. Aby uzyskać identyfikator usługi Key Vault, użyj następującego polecenia:

    az keyvault show --name <keyvault-name> --query 'id' --output tsv    
    

    To polecenie zwraca wartość podobną do /subscriptions/{subscription-guid}/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>.

  2. Aby uzyskać wartość identyfikatora URI klucza zarządzanego przez klienta, użyj następującego polecenia:

    az keyvault key show --vault-name <keyvault-name> --name <key-name> --query 'key.kid' --output tsv    
    

To polecenie zwraca wartość podobną do https://mykeyvault.vault.azure.net/keys/mykey/{guid}.

Ważne

Po utworzeniu obszaru roboczego nie można zmienić ustawień poufnych danych, szyfrowania, identyfikatora magazynu kluczy lub identyfikatorów kluczy. Aby zmienić te wartości, musisz utworzyć nowy obszar roboczy przy użyciu nowych wartości.

Aby włączyć korzystanie z kluczy zarządzanych przez klienta, ustaw następujące parametry podczas wdrażania szablonu:

  • encryption_status do włączonej.
  • cmk_keyvault do wartości uzyskanej cmk_keyvault w poprzednich krokach.
  • resource_cmk_uri do wartości uzyskanej resource_cmk_uri w poprzednich krokach.
az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" \
      location="eastus" \
      encryption_status="Enabled" \
      cmk_keyvault="/subscriptions/{subscription-guid}/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>" \
      resource_cmk_uri="https://mykeyvault.vault.azure.net/keys/mykey/{guid}" \

W przypadku korzystania z klucza zarządzanego przez klienta usługa Azure Machine Edukacja tworzy pomocniczą grupę zasobów zawierającą wystąpienie usługi Azure Cosmos DB. Aby uzyskać więcej informacji, zobacz Szyfrowanie magazynowane w usłudze Azure Cosmos DB.

Dodatkową konfiguracją, którą można podać dla danych, jest ustawienie parametru confidential_data na wartość true. W tym celu wykonaj następujące czynności:

  • Rozpoczyna szyfrowanie lokalnego dysku tymczasowego dla klastrów obliczeniowych usługi Azure Machine Edukacja, o ile nie utworzono żadnych poprzednich klastrów w ramach subskrypcji. Jeśli wcześniej utworzono klaster w ramach subskrypcji, otwórz bilet pomocy technicznej, aby mieć włączone szyfrowanie dysku tymczasowego dla klastrów obliczeniowych.

  • Czyści lokalny dysk tymczasowy między zadaniami.

  • Bezpiecznie przekazuje poświadczenia dla konta magazynu, rejestru kontenerów i konta SSH z warstwy wykonywania do klastrów obliczeniowych przy użyciu magazynu kluczy.

  • Umożliwia filtrowanie adresów IP, aby upewnić się, że bazowe pule wsadowe nie mogą być wywoływane przez żadne usługi zewnętrzne inne niż AzureMachine Edukacja Service.

    Ważne

    Po utworzeniu obszaru roboczego nie można zmienić ustawień poufnych danych, szyfrowania, identyfikatora magazynu kluczy lub identyfikatorów kluczy. Aby zmienić te wartości, musisz utworzyć nowy obszar roboczy przy użyciu nowych wartości.

    Aby uzyskać więcej informacji, zobacz szyfrowanie magazynowane.

Wdrażanie obszaru roboczego za siecią wirtualną

Ustawiając wartość parametru vnetOption na new wartość lub existing, możesz utworzyć zasoby używane przez obszar roboczy za siecią wirtualną.

Ważne

W przypadku rejestru kontenerów obsługiwana jest tylko jednostka SKU "Premium".

Ważne

Szczegółowe informacje aplikacji nie obsługuje wdrażania za siecią wirtualną.

Wdrażanie tylko obszaru roboczego za prywatnym punktem końcowym

Jeśli skojarzone zasoby nie znajdują się za siecią wirtualną, możesz ustawić parametr privateEndpointType na AutoAproval lub ManualApproval wdrożyć obszar roboczy za prywatnym punktem końcowym. Można to zrobić zarówno dla nowych, jak i istniejących obszarów roboczych. Podczas aktualizowania istniejącego obszaru roboczego wypełnij parametry szablonu informacjami z istniejącego obszaru roboczego.

az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" \
      location="eastus" \
      privateEndpointType="AutoApproval"

Korzystanie z nowej sieci wirtualnej

Aby wdrożyć zasób za nową siecią wirtualną, ustaw wartość vnetOption na nową wraz z ustawieniami sieci wirtualnej dla odpowiedniego zasobu. W poniższym wdrożeniu pokazano, jak wdrożyć obszar roboczy z zasobem konta magazynu za nową siecią wirtualną.

az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" \
      location="eastus" \
      vnetOption="new" \
      vnetName="examplevnet" \
      storageAccountBehindVNet="true"
      privateEndpointType="AutoApproval"

Alternatywnie można wdrożyć wiele lub wszystkie zasoby zależne za siecią wirtualną.

az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" \
      location="eastus" \
      vnetOption="new" \
      vnetName="examplevnet" \
      storageAccountBehindVNet="true" \
      keyVaultBehindVNet="true" \
      containerRegistryBehindVNet="true" \
      containerRegistryOption="new" \
      containerRegistrySku="Premium"
      privateEndpointType="AutoApproval"

Korzystanie z istniejącej sieci wirtualnej i zasobów

Aby wdrożyć obszar roboczy z istniejącymi skojarzonymi zasobami, należy ustawić parametr vnetOption na istniejący wraz z parametrami podsieci. Należy jednak utworzyć punkty końcowe usługi w sieci wirtualnej dla każdego z zasobów przed wdrożeniem. Podobnie jak w przypadku nowych wdrożeń sieci wirtualnych, możesz mieć jeden lub wszystkie zasoby za siecią wirtualną.

Ważne

Podsieć powinna mieć Microsoft.Storage punkt końcowy usługi

Ważne

Podsieci nie zezwalają na tworzenie prywatnych punktów końcowych. Wyłącz prywatny punkt końcowy, aby włączyć podsieć.

  1. Włącz punkty końcowe usługi dla zasobów.

    az network vnet subnet update --resource-group "examplegroup" --vnet-name "examplevnet" --name "examplesubnet" --service-endpoints "Microsoft.Storage"
    az network vnet subnet update --resource-group "examplegroup" --vnet-name "examplevnet" --name "examplesubnet" --service-endpoints "Microsoft.KeyVault"
    az network vnet subnet update --resource-group "examplegroup" --vnet-name "examplevnet" --name "examplesubnet" --service-endpoints "Microsoft.ContainerRegistry"
    
  2. Wdrażanie obszaru roboczego

    az deployment group create \
    --name "exampledeployment" \
    --resource-group "examplegroup" \
    --template-uri "https://raw.githubusercontent.com/Azure/azure-quickstart-templates/master/quickstarts/microsoft.machinelearningservices/machine-learning-workspace-vnet/azuredeploy.json" \
    --parameters workspaceName="exampleworkspace" \
      location="eastus" \
      vnetOption="existing" \
      vnetName="examplevnet" \
      vnetResourceGroupName="examplegroup" \
      storageAccountBehindVNet="true" \
      keyVaultBehindVNet="true" \
      containerRegistryBehindVNet="true" \
      containerRegistryOption="new" \
      containerRegistrySku="Premium" \
      subnetName="examplesubnet" \
      subnetOption="existing"
      privateEndpointType="AutoApproval"
    

Korzystanie z witryny Azure Portal

  1. Wykonaj kroki opisane w temacie Wdrażanie zasobów z szablonu niestandardowego. Po nadejściu ekranu Wybieranie szablonu wybierz wpis Szybki start . Po wyświetleniu wybierz link z etykietą "Kliknij tutaj, aby otworzyć repozytorium szablonów". Ten link umożliwia przejście do quickstarts katalogu w repozytorium szablonów szybkiego startu platformy Azure.

  2. Na liście szablonów szybkiego startu wybierz pozycję microsoft.machinelearningservices. Na koniec wybierz pozycję Deploy to Azure.

  3. Po wyświetleniu szablonu podaj następujące wymagane informacje i inne parametry w zależności od scenariusza wdrażania.

    • Subskrypcja: wybierz subskrypcję platformy Azure, która ma być używana dla tych zasobów.
    • Grupa zasobów: wybierz lub utwórz grupę zasobów, która będzie zawierać usługi.
    • Region: wybierz region świadczenia usługi Azure, w którym zostaną utworzone zasoby.
    • Nazwa obszaru roboczego: nazwa do użycia dla obszaru roboczego usługi Azure Machine Edukacja, który zostanie utworzony. Nazwa obszaru roboczego musi zawierać od 3 do 33 znaków. Może zawierać tylko znaki alfanumeryczne i "-".
    • Lokalizacja: wybierz lokalizację, w której zostaną utworzone zasoby.
  4. Wybierz pozycję Przejrzyj i utwórz.

  5. Na ekranie Przeglądanie i tworzenie zaakceptuj wymienione warunki i postanowienia, a następnie wybierz pozycję Utwórz.

Aby uzyskać więcej informacji, zobacz Wdrażanie zasobów z szablonu niestandardowego.

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.

Zasady dostępu usługi Azure Key Vault i szablony usługi Azure Resource Manager

Jeśli używasz szablonu usługi Azure Resource Manager do tworzenia obszaru roboczego i skojarzonych zasobów (w tym usługi Azure Key Vault), wiele razy. Na przykład wielokrotne używanie szablonu z tymi samymi parametrami w ramach potoku ciągłej integracji i wdrażania.

Większość operacji tworzenia zasobów za pomocą szablonów jest idempotentna, ale usługa Key Vault czyści zasady dostępu za każdym razem, gdy szablon jest używany. Wyczyszczenie zasad dostępu przerywa dostęp do usługi Key Vault dla dowolnego istniejącego obszaru roboczego, którego używa. Na przykład zatrzymanie/utworzenie funkcji maszyny wirtualnej usługi Azure Notebooks może zakończyć się niepowodzeniem.

Aby uniknąć tego problemu, zalecamy jedną z następujących metod:

  • Nie należy wdrażać szablonu więcej niż raz dla tych samych parametrów. Możesz też usunąć istniejące zasoby przed użyciem szablonu, aby je ponownie utworzyć.

  • Sprawdź zasady dostępu usługi Key Vault, a następnie użyj tych zasad, aby ustawić accessPolicies właściwość szablonu. Aby wyświetlić zasady dostępu, użyj następującego polecenia interfejsu wiersza polecenia platformy Azure:

    az keyvault show --name mykeyvault --resource-group myresourcegroup --query properties.accessPolicies
    

    Aby uzyskać więcej informacji na temat korzystania z accessPolicies sekcji szablonu, zobacz dokumentację obiektu AccessPolicyEntry.

  • Sprawdź, czy zasób usługi Key Vault już istnieje. Jeśli tak, nie należy go ponownie utworzyć za pomocą szablonu. Aby na przykład użyć istniejącej usługi Key Vault zamiast utworzyć nową, wprowadź następujące zmiany w szablonie:

    • Dodaj parametr, który akceptuje identyfikator istniejącego zasobu usługi Key Vault:

      "keyVaultId":{
        "type": "string",
        "metadata": {
          "description": "Specify the existing Key Vault ID."
        }
      }
      
    • Usuń sekcję, która tworzy zasób usługi Key Vault:

      {
        "type": "Microsoft.KeyVault/vaults",
        "apiVersion": "2018-02-14",
        "name": "[variables('keyVaultName')]",
        "location": "[parameters('location')]",
        "properties": {
          "tenantId": "[variables('tenantId')]",
          "sku": {
            "name": "standard",
            "family": "A"
          },
          "accessPolicies": [
          ]
        }
      },
      
    • "[resourceId('Microsoft.KeyVault/vaults', variables('keyVaultName'))]", Usuń wiersz z dependsOn sekcji obszaru roboczego. Zmień również wpis w properties sekcji obszaru roboczego, aby odwołać się do parametrukeyVaultId:keyVault

      {
        "type": "Microsoft.MachineLearningServices/workspaces",
        "apiVersion": "2019-11-01",
        "name": "[parameters('workspaceName')]",
        "location": "[parameters('location')]",
        "dependsOn": [
          "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
          "[resourceId('Microsoft.Insights/components', variables('applicationInsightsName'))]"
        ],
        "identity": {
          "type": "systemAssigned"
        },
        "sku": {
          "tier": "[parameters('sku')]",
          "name": "[parameters('sku')]"
        },
        "properties": {
          "friendlyName": "[parameters('workspaceName')]",
          "keyVault": "[parameters('keyVaultId')]",
          "applicationInsights": "[resourceId('Microsoft.Insights/components',variables('applicationInsightsName'))]",
          "storageAccount": "[resourceId('Microsoft.Storage/storageAccounts/',variables('storageAccountName'))]"
        }
      }
      

    Po tych zmianach można określić identyfikator istniejącego zasobu usługi Key Vault podczas uruchamiania szablonu. Następnie szablon użyje ponownie usługi Key Vault, ustawiając keyVault właściwość obszaru roboczego na jego identyfikator.

    Aby uzyskać identyfikator usługi Key Vault, możesz odwołać się do danych wyjściowych oryginalnego zadania szablonu lub użyć interfejsu wiersza polecenia platformy Azure. Następujące polecenie to przykład użycia interfejsu wiersza polecenia platformy Azure do pobrania identyfikatora zasobu usługi Key Vault:

    az keyvault show --name mykeyvault --resource-group myresourcegroup --query id
    

    To polecenie zwraca wartość podobną do następującego tekstu:

    /subscriptions/{subscription-guid}/resourceGroups/myresourcegroup/providers/Microsoft.KeyVault/vaults/mykeyvault
    

Następne kroki