Sdílet prostřednictvím


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 Learning 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í

  • Když vytvoříte nový pracovní prostor, můžete buď automaticky vytvořit služby potřebné pracovním prostorem, nebo použít 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ů služby Azure Machine Learning v předplatném, které tyto služby obsahuje. Pokud například vytvoříte pracovní prostor v předplatném A, který používá účet úložiště v předplatném B, musí být obor názvů Služby Azure Machine Learning zaregistrovaný v předplatném B, aby mohl pracovní prostor použít účet úložiště.

    Poskytovatel prostředků pro Azure Machine Learning je Microsoft.MachineLearningServices. Informace o tom, jestli je zaregistrovaná nebo zaregistrovaná, najdete v tématu Poskytovatelé a typy prostředků Azure.

    Důležité

    Tyto informace platí jenom pro prostředky poskytované během vytváření pracovního prostoru: účty Azure Storage, Azure Container Registry, Azure Key Vault a Application Insights.

  • Ukázková šablona nemusí vždy používat nejnovější verzi rozhraní API pro Azure Machine Learning. 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 Azure Machine Learning najdete v rozhraní REST API služby Azure Machine Learning.

    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 Learning:

    "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 Learning nasazených ve stejné virtuální síti. Důvodem tohoto omezení je, ž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). Pak pomocí webu Azure Portal vygenerujte šablonu.

Informace o šabloně Azure Resource Manageru

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

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 Learning používá tyto služby pro funkce, jako je ukládání dat, tajných kódů, protokolování a imagí Dockeru.

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

  • Umístění, kde se prostředky vytvářejí.

    Šablona používá umístění, které vyberete pro většinu prostředků. Výjimkou je služba Application Insights, která není dostupná ve všech umístěních, ve kterých jsou ostatní služby. Pokud vyberete umístění, kde není dostupné, 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 Learning.

    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 se přeruší pracovní prostor Služby Azure Machine Learning.

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

Nasazení šablony

Pokud chcete šablonu nasadit, 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. Když šabloně poskytnete další parametry, 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. Tato konfigurace vytvoří novou instanci 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 Learning.
  • 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}" \

Když použijete klíč spravovaný zákazníkem, Azure Machine Learning vytvoří sekundární skupinu prostředků, která obsahuje instanci 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 zadat pro svá data, je nastavení parametru confidential_data na true. Tím povolíte následující chování:

  • Spustí šifrování místního pomocného disku pro výpočetní clustery Azure Machine Learning, 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, aby bylo pro výpočetní clustery povolené š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 žádné externí služby jiné než AzureMachineLearningService můžou volat základní fondy dávek.

    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 new existingmůž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é

Application Insights nepodporuje nasazení za virtuální sítí.

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

Pokud vaše přidružené prostředky nejsou za virtuální sítí, můžete parametr privateEndpointType nastavit nebo AutoAproval ManualApproval nasadit pracovní prostor za privátním koncovým bodem. Toto nastavení lze použít 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í příklad 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 s existující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 Vlastní nasazení , zvolte položku šablony Pro rychlý start.

  2. V rozevíracím seznamu pro šablony rychlého startu microsoft.machinelearningservices/machine-learning-workspace-vnet vyberte položku. Nakonec použijte Select template.

  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 mají prostředky vytvořit.
    • Název pracovního prostoru: Název, který se má použít pro vytvoření pracovního prostoru Azure Machine Learning. 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 mají prostředky vytvořit.
  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 Learning nebo prostředku používaného pracovním prostorem se může zobrazit chyba podobná následující 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 Learning:

Poskytovatel prostředků Proč je to potřeba
Microsoft.MachineLearningServices Vytvoření pracovního prostoru Azure Machine Learning
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 výpočetní instanci služby Azure Machine Learning
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 Learning, 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 Learning, 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ěňte keyVault 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