Azure Resource Manager şablonu kullanarak Azure Machine Learning için çalışma alanı oluşturma

Bu makalede, Azure Resource Manager şablonlarını kullanarak Azure Machine Learning çalışma alanı oluşturmanın çeşitli yollarını öğreneceksiniz. Resource Manager şablonu, kaynakları tek ve eşgüdümlü bir işlem olarak oluşturmayı kolaylaştırır. Şablon, dağıtım için gereken kaynakları tanımlayan bir JSON belgesidir. Ayrıca dağıtım parametrelerini de belirtebilir. Parametreler, şablon kullanılırken giriş değerleri sağlamak için kullanılır.

Daha fazla bilgi için bkz . Azure Resource Manager şablonuyla uygulama dağıtma.

Önkoşullar

  • Bir Azure aboneliği. Yoksa Azure Machine Learning'in ücretsiz veya ücretli sürümünü deneyin.

  • CLI'dan şablon kullanmak için Azure PowerShell veya Azure CLI gerekir.

Sınırlamalar

  • Yeni bir çalışma alanı oluştururken, çalışma alanı için gereken hizmetleri otomatik olarak oluşturabilir veya mevcut hizmetleri kullanabilirsiniz. Çalışma alanından farklı bir Azure aboneliğindeki mevcut hizmetleri kullanmak istiyorsanız, Azure Machine Learning ad alanını bu hizmetleri içeren aboneliğe kaydetmeniz gerekir. Örneğin, A aboneliğinde B aboneliğinden bir depolama hesabı kullanan bir çalışma alanı oluştururken, depolama hesabını çalışma alanıyla kullanabilmeniz için önce Azure Machine Learning ad alanının B aboneliğine kaydedilmesi gerekir.

    Azure Machine Learning için kaynak sağlayıcısı Microsoft.MachineLearningServices'tir. Kayıtlı olup olmadığını ve nasıl kaydedildiğini görme hakkında bilgi için Azure kaynak sağlayıcıları ve türleri makalesine bakın.

    Önemli

    Bu yalnızca çalışma alanı oluşturma sırasında sağlanan kaynaklar için geçerlidir; Azure Depolama Hesapları, Azure Container Register, Azure Key Vault ve Uygulama Analizler.

  • Örnek şablon her zaman Azure Machine Learning için en son API sürümünü kullanmayabilir. Şablonu kullanmadan önce en son API sürümlerini kullanacak şekilde değiştirmenizi öneririz. Azure Machine Learning'in en son API sürümleri hakkında bilgi için bkz . Azure Machine Learning REST API..

    Bahşiş

    Her Azure hizmetinin kendi API sürümleri kümesi vardır. Belirli bir hizmete yönelik API hakkında bilgi için Azure REST API başvurusundaki hizmet bilgilerini gözden geçirin.

    API sürümünü güncelleştirmek için kaynak türünün girdisini "apiVersion": "YYYY-MM-DD" bulun ve en son sürüme güncelleştirin. Aşağıdaki örnek, Azure Machine Learning için bir girdidir:

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

Aynı sanal ağda birden çok çalışma alanı

Şablon, aynı sanal ağda dağıtılan birden çok Azure Machine Learning çalışma alanını desteklemez. Bunun nedeni, şablonun dağıtım sırasında yeni DNS bölgeleri oluşturmasıdır.

Aynı sanal ağda birden çok çalışma alanı dağıtan bir şablon oluşturmak istiyorsanız, bunu el ile ayarlayın (Azure Portal veya CLI kullanarak) ve ardından azure portalını kullanarak bir şablon oluşturun.

Çalışma Alanı Kaynak Yöneticisi şablonu

Bu belge boyunca kullanılan Azure Resource Manager şablonu, Azure hızlı başlangıç şablonları GitHub deposunun microsoft.machineleaerningservices/machine-learning-workspace-vnet dizininde bulunabilir.

Bu şablon aşağıdaki Azure hizmetlerini oluşturur:

  • Azure Depolama Hesabı
  • Azure Key Vault
  • Azure Application Insights
  • Azure Container Registry
  • Azure Machine Learning çalışma alanı

Kaynak grubu, hizmetleri barındıran kapsayıcıdır. Azure Machine Learning çalışma alanı için çeşitli hizmetler gereklidir.

Örnek şablonun iki gerekli parametresi vardır:

  • Kaynakların oluşturulacağı konum.

    Şablon, çoğu kaynak için seçtiğiniz konumu kullanır. Özel durum, diğer hizmetlerin bulunduğu tüm konumlarda bulunmayan Uygulama Analizler hizmetidir. Kullanılamayan bir konum seçerseniz, hizmet Orta Güney ABD konumunda oluşturulur.

  • Azure Machine Learning çalışma alanının kolay adı olan workspaceName.

    Dekont

    Çalışma alanı adı büyük/küçük harfe duyarlı değildir.

    Diğer hizmetlerin adları rastgele oluşturulur.

Bahşiş

Bu belgeyle ilişkili şablon yeni bir Azure Container Registry oluştururken, kapsayıcı kayıt defteri oluşturmadan da yeni bir çalışma alanı oluşturabilirsiniz. Kapsayıcı kayıt defteri gerektiren bir işlem gerçekleştirdiğinizde bir tane oluşturulur. Örneğin, bir modeli eğitin veya dağıtın.

Yeni bir tane oluşturmak yerine Azure Resource Manager şablonunda mevcut bir kapsayıcı kayıt defterine veya depolama hesabına da başvurabilirsiniz. Bunu yaparken yönetilen kimlik (önizleme) kullanmanız veya kapsayıcı kayıt defteri için yönetici hesabını etkinleştirmeniz gerekir.

Uyarı

Bir çalışma alanı için Azure Container Registry oluşturulduktan sonra silmeyin. Bunu yaptığınızda Azure Machine Learning çalışma alanınız bozulacaktır.

Şablonlar hakkında daha fazla bilgi için aşağıdaki makalelere bakın:

Şablon dağıtma

Şablonunuzu dağıtmak için bir kaynak grubu oluşturmanız gerekir.

Grafik kullanıcı arabirimini kullanmayı tercih ediyorsanız Azure portalı bölümüne bakın.

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

Kaynak grubunuz başarıyla oluşturulduktan sonra aşağıdaki komutla şablonu dağıtın:

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"

Varsayılan olarak, şablonun bir parçası olarak oluşturulan tüm kaynaklar yenidir. Ancak, mevcut kaynakları kullanma seçeneğiniz de vardır. Şablona ek parametreler sağlayarak mevcut kaynakları kullanabilirsiniz. Örneğin, mevcut bir depolama hesabını kullanmak istiyorsanız storageAccountOption değerini mevcut olarak ayarlayın ve storageAccountName parametresinde depolama hesabınızın adını sağlayın.

Önemli

Mevcut bir Azure Depolama hesabını kullanmak istiyorsanız, premium hesap (Premium_LRS ve Premium_GRS) olamaz. Ayrıca hiyerarşik ad alanına (Azure Data Lake Storage 2. Nesil ile birlikte kullanılır) sahip olamaz. Çalışma alanının varsayılan depolama hesabıyla premium depolama veya hiyerarşik ad alanı desteklenmez. Çalışma alanının varsayılan depolama hesabıyla hiçbir premium depolama alanı veya hiyerarşik ad alanı desteklenmez. Premium depolama veya hiyerarşik ad alanını varsayılan olmayan depolama hesaplarıyla kullanabilirsiniz.

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"

Şifrelenmiş çalışma alanı dağıtma

Aşağıdaki örnek şablonda üç ayarlı bir çalışma alanının nasıl oluşturulacağı gösterilmektedir:

  • Çalışma alanı için yüksek gizlilik ayarlarını etkinleştirin. Bu, yeni bir Azure Cosmos DB örneği oluşturur.
  • Çalışma alanı için şifrelemeyi etkinleştirin.
  • Müşteri tarafından yönetilen anahtarları almak için mevcut bir Azure Key Vault kullanır. Müşteri tarafından yönetilen anahtarlar, çalışma alanı için yeni bir Azure Cosmos DB örneği oluşturmak için kullanılır.

Önemli

Çalışma alanı oluşturulduktan sonra gizli veriler, şifreleme, anahtar kasası kimliği veya anahtar tanımlayıcıları ayarlarını değiştiremezsiniz. Bu değerleri değiştirmek için yeni değerleri kullanarak yeni bir çalışma alanı oluşturmanız gerekir.

Daha fazla bilgi için bkz . Müşteri tarafından yönetilen anahtarlar.

Önemli

Bu şablonu kullanmadan önce aboneliğinizin karşılaması gereken belirli gereksinimler vardır:

  • Şifreleme anahtarı içeren mevcut bir Azure Key Vault'a sahip olmanız gerekir.
  • Azure Key Vault, Azure Machine Learning çalışma alanını oluşturmayı planladığınız bölgede olmalıdır.
  • Azure Key Vault kimliğini ve şifreleme anahtarının URI'sini belirtmeniz gerekir.

Kasayı ve anahtarı oluşturma adımları için bkz . Müşteri tarafından yönetilen anahtarları yapılandırma.

Bu şablon için gereken (Key Vault kimliği) ve (anahtar URI'si) parametrelerinin resource_cmk_uri değerlerini almak için cmk_keyvault aşağıdaki adımları kullanın:

  1. Key Vault Kimliğini almak için aşağıdaki komutu kullanın:

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

    Bu komut, benzeri /subscriptions/{subscription-guid}/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>bir değer döndürür.

  2. Müşteri tarafından yönetilen anahtarın URI değerini almak için aşağıdaki komutu kullanın:

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

Bu komut, benzeri https://mykeyvault.vault.azure.net/keys/mykey/{guid}bir değer döndürür.

Önemli

Çalışma alanı oluşturulduktan sonra gizli veriler, şifreleme, anahtar kasası kimliği veya anahtar tanımlayıcıları ayarlarını değiştiremezsiniz. Bu değerleri değiştirmek için yeni değerleri kullanarak yeni bir çalışma alanı oluşturmanız gerekir.

Müşteri Tarafından Yönetilen Anahtarların kullanımını etkinleştirmek için, şablonu dağıtırken aşağıdaki parametreleri ayarlayın:

  • Etkin'e encryption_status.
  • Önceki adımlarda elde edilen değere cmk_keyvault cmk_keyvault.
  • Önceki adımlarda elde edilen değere resource_cmk_uri resource_cmk_uri.
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}" \

Müşteri tarafından yönetilen bir anahtar kullanırken Azure Machine Learning, Azure Cosmos DB örneğini içeren ikincil bir kaynak grubu oluşturur. Daha fazla bilgi için bkz . Azure Cosmos DB'de bekleyen şifreleme.

Verileriniz için sağlayabileceğiniz ek bir yapılandırma, confidential_data parametresini true olarak ayarlamaktır. Bunu yaptığınızda aşağıdakileri yapar:

  • Aboneliğinizde önceki kümeleri oluşturmamış olmanız halinde Azure Machine Learning işlem kümeleri için yerel karalama diskini şifrelemeye başlar. Abonelikte daha önce bir küme oluşturduysanız işlem kümeleriniz için karalama diskinin şifrelemesinin etkinleştirilmesi için bir destek bileti açın.

  • İşler arasındaki yerel karalama diskini temizler.

  • Anahtar kasasını kullanarak depolama hesabı, kapsayıcı kayıt defteri ve SSH hesabının kimlik bilgilerini yürütme katmanından işlem kümelerinize güvenli bir şekilde geçirir.

  • Temel alınan toplu iş havuzlarının AzureMachineLearningService dışındaki dış hizmetler tarafından çağrılamadığından emin olmak için IP filtrelemesini etkinleştirir.

    Önemli

    Çalışma alanı oluşturulduktan sonra gizli veriler, şifreleme, anahtar kasası kimliği veya anahtar tanımlayıcıları ayarlarını değiştiremezsiniz. Bu değerleri değiştirmek için yeni değerleri kullanarak yeni bir çalışma alanı oluşturmanız gerekir.

    Daha fazla bilgi için bkz . Bekleyen şifreleme.

Çalışma alanını sanal ağın arkasına dağıtma

Parametre değerini veya existingolarak new ayarlayarakvnetOption, sanal ağın arkasındaki bir çalışma alanı tarafından kullanılan kaynakları oluşturabilirsiniz.

Önemli

Kapsayıcı kayıt defteri için yalnızca 'Premium' sku'su desteklenir.

Önemli

Uygulama Analizler sanal ağın arkasındaki dağıtımı desteklemez.

Çalışma alanını yalnızca özel uç noktanın arkasına dağıtma

İlişkili kaynaklarınız bir sanal ağın arkasında değilse privateEndpointType parametresini AutoAproval veya olarak ayarlayabilir ve ManualApproval çalışma alanını özel bir uç noktanın arkasına dağıtabilirsiniz. Bu, hem yeni hem de mevcut çalışma alanları için yapılabilir. Var olan bir çalışma alanını güncelleştirirken, şablon parametrelerini mevcut çalışma alanından alınan bilgilerle doldurun.

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"

Yeni bir sanal ağ kullanma

Yeni bir sanal ağın arkasında bir kaynak dağıtmak için ilgili kaynağın sanal ağ ayarlarıyla birlikte vnetOption'ıyeni olarak ayarlayın. Aşağıdaki dağıtımda, yeni bir sanal ağın arkasındaki depolama hesabı kaynağıyla bir çalışma alanının nasıl dağıtılacağı gösterilmektedir.

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"

Alternatif olarak, sanal ağın arkasına birden çok veya tüm bağımlı kaynakları dağıtabilirsiniz.

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"

Var olan bir sanal ağı ve kaynakları kullanma

Çalışma alanını mevcut ilişkili kaynaklarla dağıtmak için vnetOption parametresini alt ağ parametreleriyle birlikte var olan olarak ayarlamanız gerekir. Ancak, dağıtımdan önce kaynakların her biri için sanal ağda hizmet uç noktaları oluşturmanız gerekir. Yeni sanal ağ dağıtımlarında olduğu gibi, bir sanal ağın arkasında kaynaklarınızdan birine veya tümüne sahip olabilirsiniz.

Önemli

Alt ağın Microsoft.Storage hizmet uç noktası olmalıdır

Önemli

Alt ağlar özel uç noktaların oluşturulmasına izin vermez. Alt ağı etkinleştirmek için özel uç noktayı devre dışı bırakın.

  1. Kaynaklar için hizmet uç noktalarını etkinleştirin.

    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. Çalışma alanını dağıtma

    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"
    

Azure portal’ı kullanma

  1. Kaynakları özel şablondan dağıtma bölümünde yer alan adımları izleyin. Şablon seçin ekranına geldiğinizde hızlı başlangıç girdisini seçin. Görüntülendiğinde "Şablon deposunu açmak için buraya tıklayın" etiketli bağlantıyı seçin. Bu bağlantı sizi quickstarts Azure hızlı başlangıç şablonları deposundaki dizine götürür.

  2. Hızlı başlangıç şablonları listesinde öğesini seçin microsoft.machinelearningservices. Son olarak öğesini seçin Deploy to Azure.

  3. Şablon görüntülendiğinde, dağıtım senaryonuza bağlı olarak aşağıdaki gerekli bilgileri ve diğer parametreleri sağlayın.

    • Abonelik: Bu kaynaklar için kullanılacak Azure aboneliğini seçin.
    • Kaynak grubu: Hizmetleri içerecek bir kaynak grubu seçin veya oluşturun.
    • Bölge: Kaynakların oluşturulacağı Azure bölgesini seçin.
    • Çalışma alanı adı: Oluşturulacak Azure Machine Learning çalışma alanı için kullanılacak ad. Çalışma alanı adı 3 ile 33 karakter arasında olmalıdır. Yalnızca alfasayısal karakterler ve '-' içerebilir.
    • Konum: Kaynakların oluşturulacağı konumu seçin.
  4. Gözden geçir ve oluştur’u seçin.

  5. Gözden geçir ve oluştur ekranında, listelenen hüküm ve koşulları kabul edin ve Oluştur'u seçin.

Daha fazla bilgi için bkz . Kaynakları özel şablondan dağıtma.

Sorun giderme

Kaynak sağlayıcısı hataları

Azure Machine Learning çalışma alanı veya çalışma alanı tarafından kullanılan bir kaynak oluştururken aşağıdaki iletilere benzer bir hata alabilirsiniz:

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

Çoğu kaynak sağlayıcısı otomatik olarak kaydedilir, ancak tümü kaydedilmez. Bu iletiyi alırsanız, bahsedilen sağlayıcıyı kaydetmeniz gerekir.

Aşağıdaki tabloda Azure Machine Learning tarafından gereken kaynak sağlayıcılarının listesi yer alır:

Kaynak sağlayıcısı Neden gereklidir?
Microsoft.MachineLearningServices Azure Machine Learning çalışma alanını oluşturma.
Microsoft. Depolama Azure Depolama Hesabı, çalışma alanı için varsayılan depolama alanı olarak kullanılır.
Microsoft.ContainerRegistry Azure Container Registry, çalışma alanı tarafından Docker görüntüleri oluşturmak için kullanılır.
Microsoft.KeyVault Azure Key Vault, çalışma alanı tarafından gizli dizileri depolamak için kullanılır.
Microsoft.Notebooks Azure Machine Learning işlem örneğindeki tümleşik not defterleri.
Microsoft.ContainerService Eğitilmiş modelleri Azure Kubernetes Services'e dağıtmayı planlıyorsanız.

Azure Machine Learning ile müşteri tarafından yönetilen bir anahtar kullanmayı planlıyorsanız aşağıdaki hizmet sağlayıcılarının kaydedilmesi gerekir:

Kaynak sağlayıcısı Neden gereklidir?
Microsoft.DocumentDB Çalışma alanı için meta verileri günlüğe kaydeden Azure CosmosDB örneği.
Microsoft.Search Azure Search, çalışma alanı için dizin oluşturma özellikleri sağlar.

Azure Machine Learning ile yönetilen bir sanal ağ kullanmayı planlıyorsanız Microsoft.Network kaynak sağlayıcısının kayıtlı olması gerekir. Bu kaynak sağlayıcısı, yönetilen sanal ağ için özel uç noktalar oluştururken çalışma alanı tarafından kullanılır.

Kaynak sağlayıcılarını kaydetme hakkında bilgi için bkz . Kaynak sağlayıcısı kaydı hatalarını çözme.

Azure Key Vault erişim ilkesi ve Azure Resource Manager şablonları

Çalışma alanını ve ilişkili kaynakları (Azure Key Vault dahil) birden çok kez oluşturmak için bir Azure Resource Manager şablonu kullandığınızda. Örneğin, şablonu sürekli tümleştirme ve dağıtım işlem hattının parçası olarak aynı parametrelerle birden çok kez kullanma.

Şablonlar aracılığıyla yapılan kaynak oluşturma işlemlerinin çoğu bir kez etkili olsa da Key Vault, şablon her kullanıldığında erişim ilkelerini temizler. Erişim ilkelerinin temizlenmesi, key vault'a erişimi kullanan mevcut çalışma alanları için sonlar. Örneğin, Azure Notebooks VM'sinin Durdurma/Oluşturma işlevleri başarısız olabilir.

Bu sorunu önlemek için aşağıdaki yaklaşımlardan birini öneririz:

  • Şablonu aynı parametreler için birden çok kez dağıtmayın. Veya şablonu kullanarak yeniden oluşturmadan önce mevcut kaynakları silin.

  • Key Vault erişim ilkelerini inceleyin ve şablonun accessPolicies özelliğini ayarlamak için bu ilkeleri kullanın. Erişim ilkelerini görüntülemek için aşağıdaki Azure CLI komutunu kullanın:

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

    Şablonun accessPolicies bölümünü kullanma hakkında daha fazla bilgi için bkz . AccessPolicyEntry nesne başvurusu.

  • Key Vault kaynağının zaten var olup olmadığını denetleyin. Bunu yaparsa, şablon aracılığıyla yeniden oluşturmayın. Örneğin, yeni bir anahtar oluşturmak yerine mevcut Key Vault'un kullanılması için şablonda aşağıdaki değişiklikleri yapın:

    • Mevcut bir Key Vault kaynağının kimliğini kabul eden bir parametre ekleyin :

      "keyVaultId":{
        "type": "string",
        "metadata": {
          "description": "Specify the existing Key Vault ID."
        }
      }
      
    • Key Vault kaynağı oluşturan bölümü kaldırın :

      {
        "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'))]", Satırı dependsOn çalışma alanının bölümünden kaldırın. Ayrıca, parametresine keyVaultproperties başvurmak için çalışma alanının bölümündeki girdiyi keyVaultId değiştirin:

      {
        "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'))]"
        }
      }
      

    Bu değişikliklerden sonra, şablonu çalıştırırken mevcut Key Vault kaynağının kimliğini belirtebilirsiniz. Şablon daha sonra çalışma alanının özelliğini kimliğine ayarlayarak keyVault Key Vault'un yeniden kullanılmasını sağlar.

    Key Vault kimliğini almak için özgün şablon işinin çıktısına başvurabilir veya Azure CLI'yı kullanabilirsiniz. Aşağıdaki komut, Key Vault kaynak kimliğini almak için Azure CLI'yi kullanma örneğidir:

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

    Bu komut aşağıdaki metne benzer bir değer döndürür:

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

Sonraki adımlar