Použití šablony Azure Resource Manager k vytvoření pracovního prostoru pro Azure Machine Learning

V tomto článku se dozvíte několik způsobů, jak vytvořit pracovní prostor Azure Machine Učení pomocí šablon Azure Resource Manageru. Šablona Resource Manageru usnadňuje vytváření prostředků jako jediné koordinované operace. Šablona je dokument JSON, který definuje prostředky potřebné pro nasazení. Může také určovat parametry nasazení. Parametry se používají k zadání vstupních hodnot při použití šablony.

Další informace najdete v tématu Nasazení aplikace pomocí šablony Azure Resource Manageru.

Požadavky

Omezení

  • Při vytváření nového pracovního prostoru můžete buď automaticky vytvářet služby potřebné pracovním prostorem, nebo používat existující služby. Pokud chcete použít existující služby z jiného předplatného Azure, než je pracovní prostor, musíte zaregistrovat obor názvů azure machine Učení v předplatném, které tyto služby obsahuje. Například vytvoření pracovního prostoru v předplatném A, který používá účet úložiště z předplatného B, musí být obor názvů Azure Machine Učení zaregistrovaný v předplatném B, abyste mohli použít účet úložiště s pracovním prostorem.

    Poskytovatel prostředků pro Azure Machine Učení je Microsoft.Machine Učení Services. Informace o tom, jak zjistit, jestli je zaregistrovaná a jak ji zaregistrovat, najdete v článku o poskytovatelích a typech prostředků Azure.

    Důležité

    To platí pouze pro prostředky poskytnuté během vytváření pracovního prostoru; Účty azure Storage, Azure Container Register, Azure Key Vault a Přehledy aplikací.

  • Ukázková šablona nemusí vždy používat nejnovější verzi rozhraní API pro službu Azure Machine Učení. Před použitím šablony doporučujeme ji upravit tak, aby používala nejnovější verze rozhraní API. Informace o nejnovějších verzích rozhraní API pro službu Azure Machine Učení najdete v rozhraní AZURE Machine Učení REST API.

    Tip

    Každá služba Azure má svou vlastní sadu verzí rozhraní API. Informace o rozhraní API pro konkrétní službu najdete v referenčních informacích o službě Azure REST API.

    Pokud chcete aktualizovat verzi rozhraní API, vyhledejte "apiVersion": "YYYY-MM-DD" položku pro typ prostředku a aktualizujte ji na nejnovější verzi. Následující příklad je položka pro azure machine Učení:

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

Více pracovních prostorů ve stejné virtuální síti

Šablona nepodporuje více pracovních prostorů azure machine Učení nasazených ve stejné virtuální síti. Důvodem je to, že šablona během nasazování vytváří nové zóny DNS.

Pokud chcete vytvořit šablonu, která nasadí více pracovních prostorů ve stejné virtuální síti, nastavte ji ručně (pomocí webu Azure Portal nebo rozhraní příkazového řádku) a pak pomocí webu Azure Portal vygenerujte šablonu.

Šablona Resource Manageru pracovního prostoru

Šablonu Azure Resource Manageru používanou v celém tomto dokumentu najdete v adresáři microsoft.machineleaerningservices/machine-learning-workspace-vnet v úložišti GitHub šablon Azure pro rychlý start.

Tato šablona vytvoří následující služby Azure:

  • Účet služby Azure Storage
  • Azure Key Vault
  • Azure Application Insights
  • Azure Container Registry
  • Pracovní prostor služby Azure Machine Learning

Skupina prostředků je kontejner, který obsahuje služby. Pracovní prostor Azure Machine Učení vyžaduje různé služby.

Ukázková šablona má dva požadované parametry:

  • Umístění, kam se prostředky vytvoří.

    Šablona bude používat umístění, které vyberete pro většinu prostředků. Výjimkou je služba Přehledy aplikace, která není dostupná ve všech umístěních, kde jsou ostatní služby. Pokud vyberete umístění, kde není k dispozici, služba se vytvoří v umístění USA – středojiž.

  • Název pracovního prostoru, což je popisný název pracovního prostoru Azure Machine Učení.

    Poznámka:

    Název pracovního prostoru nerozlišuje velká a malá písmena.

    Názvy ostatních služeb se generují náhodně.

Tip

I když šablona přidružená k tomuto dokumentu vytvoří novou službu Azure Container Registry, můžete také vytvořit nový pracovní prostor bez vytvoření registru kontejneru. Jedna se vytvoří při provádění operace, která vyžaduje registr kontejneru. Například trénování nebo nasazení modelu.

Místo vytvoření nového můžete odkazovat na existující registr kontejneru nebo účet úložiště v šabloně Azure Resource Manageru. Když to uděláte, musíte buď použít spravovanou identitu (Preview), nebo povolit účet správce registru kontejneru.

Upozorňující

Po vytvoření služby Azure Container Registry pro pracovní prostor ho neodstraňovat. Tím dojde k přerušení pracovního prostoru Azure Machine Učení.

Další informace o šablonách najdete v následujících článcích:

Nasazení šablony

Pokud chcete nasadit šablonu, musíte vytvořit skupinu prostředků.

Pokud dáváte přednost použití grafického uživatelského rozhraní, přečtěte si část webu Azure Portal.

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

Po úspěšném vytvoření skupiny prostředků nasaďte šablonu pomocí následujícího příkazu:

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"

Ve výchozím nastavení jsou všechny prostředky vytvořené jako součást šablony nové. Máte ale také možnost použít existující prostředky. Poskytnutím dalších parametrů šablony můžete použít existující prostředky. Pokud například chcete použít existující účet úložiště, nastavte hodnotu storageAccountOption na existující a zadejte název účtu úložiště v parametru storageAccountName .

Důležité

Pokud chcete použít existující účet Azure Storage, nemůže se jednat o účet Premium (Premium_LRS a Premium_GRS). Nemůže mít také hierarchický obor názvů (používaný s Azure Data Lake Storage Gen2). Výchozí účet úložiště pracovního prostoru nepodporuje ani úložiště úrovně Premium ani hierarchický obor názvů. U výchozího účtu úložiště pracovního prostoru nejsou podporovány žádné obory názvů úrovně Premium ani hierarchické obory názvů. U jiných než výchozích účtů úložiště můžete použít službu Premium Storage nebo hierarchický obor názvů.

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"

Nasazení šifrovaného pracovního prostoru

Následující příklad šablony ukazuje, jak vytvořit pracovní prostor se třemi nastaveními:

  • Povolte nastavení vysoké důvěrnosti pro pracovní prostor. Tím se vytvoří nová instance služby Azure Cosmos DB.
  • Povolte šifrování pracovního prostoru.
  • Používá existující službu Azure Key Vault k načtení klíčů spravovaných zákazníkem. Klíče spravované zákazníkem se používají k vytvoření nové instance služby Azure Cosmos DB pro pracovní prostor.

Důležité

Po vytvoření pracovního prostoru nemůžete změnit nastavení důvěrných dat, šifrování, ID trezoru klíčů nebo identifikátorů klíčů. Pokud chcete tyto hodnoty změnit, musíte vytvořit nový pracovní prostor pomocí nových hodnot.

Další informace najdete v tématu Klíče spravované zákazníkem.

Důležité

Před použitím této šablony musí vaše předplatné splňovat určité požadavky:

  • Musíte mít existující službu Azure Key Vault, která obsahuje šifrovací klíč.
  • Azure Key Vault musí být ve stejné oblasti, ve které plánujete vytvořit pracovní prostor azure machine Učení.
  • Musíte zadat ID služby Azure Key Vault a identifikátor URI šifrovacího klíče.

Postup vytvoření trezoru a klíče najdete v tématu Konfigurace klíčů spravovaných zákazníkem.

Pokud chcete získat hodnoty pro cmk_keyvault parametry (ID služby Key Vault) a resource_cmk_uri (identifikátor URI klíče), které tato šablona potřebuje, postupujte následovně:

  1. Pokud chcete získat ID služby Key Vault, použijte následující příkaz:

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

    Tento příkaz vrátí hodnotu podobnou /subscriptions/{subscription-guid}/resourceGroups/<resource-group-name>/providers/Microsoft.KeyVault/vaults/<keyvault-name>.

  2. Pokud chcete získat hodnotu identifikátoru URI pro klíč spravovaný zákazníkem, použijte následující příkaz:

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

Tento příkaz vrátí hodnotu podobnou https://mykeyvault.vault.azure.net/keys/mykey/{guid}.

Důležité

Po vytvoření pracovního prostoru nemůžete změnit nastavení důvěrných dat, šifrování, ID trezoru klíčů nebo identifikátorů klíčů. Pokud chcete tyto hodnoty změnit, musíte vytvořit nový pracovní prostor pomocí nových hodnot.

Pokud chcete povolit použití klíčů spravovaných zákazníkem, nastavte při nasazování šablony následující parametry:

  • encryption_status povoleno.
  • cmk_keyvault na hodnotu získanou cmk_keyvault v předchozích krocích.
  • resource_cmk_uri na hodnotu získanou resource_cmk_uri v předchozích krocích.
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}" \

Při použití klíče spravovaného zákazníkem vytvoří počítač Azure Učení sekundární skupinu prostředků, která obsahuje instanci Služby Azure Cosmos DB. Další informace najdete v tématu Šifrování neaktivních uložených dat ve službě Azure Cosmos DB.

Další konfigurací, kterou můžete poskytnout pro svá data, je nastavit confidential_data parametr na true. Uděláte to takto:

  • Spustí šifrování místního pomocného disku pro výpočetní clustery Azure Machine Učení, pokud jste ve svém předplatném nevytvořili žádné předchozí clustery. Pokud jste dříve vytvořili cluster v předplatném, otevřete lístek podpory, abyste pro výpočetní clustery povolili šifrování pomocného disku.

  • Vyčistí místní škrábaný disk mezi úlohami.

  • Bezpečně předá přihlašovací údaje pro účet úložiště, registr kontejneru a účet SSH z vrstvy spouštění do výpočetních clusterů pomocí trezoru klíčů.

  • Umožňuje filtrování IP adres, aby se zajistilo, že podkladové fondy dávek nelze volat jinými externími službami než AzureMachine Učení Service.

    Důležité

    Po vytvoření pracovního prostoru nemůžete změnit nastavení důvěrných dat, šifrování, ID trezoru klíčů nebo identifikátorů klíčů. Pokud chcete tyto hodnoty změnit, musíte vytvořit nový pracovní prostor pomocí nových hodnot.

    Další informace najdete v tématu šifrování neaktivních uložených dat.

Nasazení pracovního prostoru za virtuální sítí

Nastavením hodnoty parametru vnetOption na hodnotu nebo newexistingmůžete vytvořit prostředky používané pracovním prostorem za virtuální sítí.

Důležité

V případě registru kontejneru se podporuje pouze skladová položka Premium.

Důležité

Aplikační Přehledy nepodporuje nasazení za virtuální sítí.

Nasazení pracovního prostoru pouze za privátním koncovým bodem

Pokud přidružené prostředky nejsou za virtuální sítí, můžete parametr privateEndpointType nastavit na AutoAproval nebo ManualApproval nasadit pracovní prostor za privátním koncovým bodem. To lze provést pro nové i existující pracovní prostory. Při aktualizaci existujícího pracovního prostoru vyplňte parametry šablony informacemi z existujícího pracovního prostoru.

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"

Použití nové virtuální sítě

Pokud chcete nasadit prostředek za novou virtuální sítí, nastavte vnetOption na nový spolu s nastavením virtuální sítě pro příslušný prostředek. Následující nasazení ukazuje, jak nasadit pracovní prostor s prostředkem účtu úložiště za novou virtuální sítí.

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"

Alternativně můžete nasadit více nebo všechny závislé prostředky za virtuální sítí.

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"

Použití existující virtuální sítě a prostředků

Pokud chcete nasadit pracovní prostor se stávajícími přidruženými prostředky, musíte nastavit parametr vnetOption na existující spolu s parametry podsítě. Před nasazením ale potřebujete vytvořit koncové body služby ve virtuální síti pro každý z prostředků. Stejně jako u nových nasazení virtuální sítě můžete mít jeden nebo všechny prostředky za virtuální sítí.

Důležité

Podsíť by měla mít Microsoft.Storage koncový bod služby.

Důležité

Podsítě neumožňují vytváření privátních koncových bodů. Zakázání privátního koncového bodu pro povolení podsítě

  1. Povolte koncové body služby pro prostředky.

    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. Nasazení pracovního prostoru

    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"
    

Použití portálu Azure Portal

  1. Postupujte podle kroků v tématu Nasazení prostředků z vlastní šablony. Až se dostanete na obrazovku Vybrat šablonu , zvolte položku Rychlý start . Až se zobrazí, vyberte odkaz s popiskem "Kliknutím sem otevřete úložiště šablon". Tento odkaz vás přenese do quickstarts adresáře v úložišti šablon Azure Pro rychlý start.

  2. V seznamu šablon rychlého startu vyberte microsoft.machinelearningservices. Nakonec vyberte Deploy to Azure.

  3. Po zobrazení šablony zadejte následující požadované informace a všechny další parametry v závislosti na vašem scénáři nasazení.

    • Předplatné: Vyberte předplatné Azure, které se má pro tyto prostředky použít.
    • Skupina prostředků: Vyberte nebo vytvořte skupinu prostředků, která bude obsahovat služby.
    • Oblast: Vyberte oblast Azure, ve které se prostředky vytvoří.
    • Název pracovního prostoru: Název, který se použije pro pracovní prostor Azure Machine Učení, který se vytvoří. Název pracovního prostoru musí mít délku 3 až 33 znaků. Může obsahovat pouze alfanumerické znaky a -.
    • Umístění: Vyberte umístění, ve kterém se prostředky vytvoří.
  4. Vyberte Zkontrolovat a vytvořit.

  5. Na obrazovce Zkontrolovat a vytvořit odsouhlaste uvedené podmínky a ujednání a vyberte Vytvořit.

Další informace najdete v tématu Nasazení prostředků z vlastní šablony.

Řešení problému

Chyby poskytovatele prostředků

Při vytváření pracovního prostoru azure machine Učení nebo prostředku používaného pracovním prostorem se může zobrazit chyba podobná následujícím zprávě:

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

Většina poskytovatelů prostředků se registruje automaticky, ale ne všechny. Pokud se zobrazí tato zpráva, musíte zaregistrovat uvedeného poskytovatele.

Následující tabulka obsahuje seznam poskytovatelů prostředků vyžadovaných službou Azure Machine Učení:

Poskytovatel prostředků Proč je to potřeba
Microsoft.Machine Učení Services Vytvoření pracovního prostoru Azure Machine Učení
Microsoft.Storage Účet služby Azure Storage se používá jako výchozí úložiště pro pracovní prostor.
Microsoft.ContainerRegistry Azure Container Registry používá pracovní prostor k vytváření imagí Dockeru.
Microsoft.KeyVault Azure Key Vault používá pracovní prostor k ukládání tajných kódů.
Microsoft.Notebooks Integrované poznámkové bloky ve službě Azure Machine Učení výpočetní instanci
Microsoft.ContainerService Pokud plánujete nasadit natrénované modely do azure Kubernetes Services.

Pokud plánujete používat klíč spravovaný zákazníkem se službou Azure Machine Učení, musí být zaregistrovaní následující poskytovatelé služeb:

Poskytovatel prostředků Proč je to potřeba
Microsoft.DocumentDB Instance Azure CosmosDB, která protokoluje metadata pro pracovní prostor.
Microsoft.Search Azure Search poskytuje možnosti indexování pro pracovní prostor.

Pokud plánujete používat spravovanou virtuální síť se službou Azure Machine Učení, musí být zaregistrovaný poskytovatel prostředků Microsoft.Network. Tento poskytovatel prostředků je používán pracovním prostorem při vytváření privátních koncových bodů pro spravovanou virtuální síť.

Informace o registraci poskytovatelů prostředků najdete v tématu Řešení chyb registrace poskytovatele prostředků.

Zásady přístupu ke službě Azure Key Vault a šablony Azure Resource Manageru

Když k vytvoření pracovního prostoru a přidružených prostředků (včetně Azure Key Vaultu) použijete šablonu Azure Resource Manageru, několikrát. Například použití šablony několikrát se stejnými parametry jako součást kanálu kontinuální integrace a nasazení.

Většina operací vytváření prostředků prostřednictvím šablon je idempotentní, ale Key Vault při každém použití šablony vymaže zásady přístupu. Vymazání zásad přístupu přeruší přístup ke službě Key Vault pro všechny existující pracovní prostory, které ho používají. Například zastavení nebo vytvoření funkcí virtuálního počítače Azure Notebooks může selhat.

Chcete-li se tomuto problému vyhnout, doporučujeme jeden z následujících přístupů:

  • Nenasazujte šablonu více než jednou pro stejné parametry. Nebo před použitím šablony odstraňte existující prostředky a vytvořte je znovu.

  • Prozkoumejte zásady přístupu ke službě Key Vault a pak pomocí těchto zásad nastavte accessPolicies vlastnost šablony. Pokud chcete zobrazit zásady přístupu, použijte následující příkaz Azure CLI:

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

    Další informace o použití accessPolicies oddílu šablony naleznete v AccessPolicyEntry odkaz na objekt.

  • Zkontrolujte, jestli prostředek služby Key Vault již existuje. Pokud ano, nevytvářejte ji znovu prostřednictvím šablony. Pokud například chcete místo vytvoření nové služby Key Vault použít existující službu Key Vault, proveďte v šabloně následující změny:

    • Přidejte parametr, který přijímá ID existujícího prostředku služby Key Vault:

      "keyVaultId":{
        "type": "string",
        "metadata": {
          "description": "Specify the existing Key Vault ID."
        }
      }
      
    • Odeberte oddíl, který vytvoří prostředek služby 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'))]", Odeberte řádek z oddílu dependsOn pracovního prostoru. ZměňtekeyVault také položku v properties části pracovního prostoru tak, aby odkazovat na keyVaultId parametr:

      {
        "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 těchto změnách můžete při spuštění šablony zadat ID existujícího prostředku služby Key Vault. Šablona pak znovu použije key Vault nastavením keyVault vlastnosti pracovního prostoru na jeho ID.

    Pokud chcete získat ID služby Key Vault, můžete odkazovat na výstup původní úlohy šablony nebo použít Azure CLI. Následující příkaz je příkladem použití Azure CLI k získání ID prostředku služby Key Vault:

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

    Tento příkaz vrátí hodnotu podobnou následujícímu textu:

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

Další kroky