使用 Azure 资源管理器部署机器学习工作室(经典)工作区

适用于:适用于. 机器学习工作室(经典)不适用于.Azure 机器学习

重要

对机器学习工作室(经典)的支持将于 2024 年 8 月 31 日结束。 建议在该日期之前转换到 Azure 机器学习

从 2021 年 12 月 1 日开始,你将无法创建新的机器学习工作室(经典)资源。 在 2024 年 8 月 31 日之前,可继续使用现有的机器学习工作室(经典)资源。

ML 工作室(经典)文档即将停用,将来可能不会更新。

通过提供部署带有验证和重试机制的互连组件的可扩展方法,使用 Azure 资源管理器部署模板可节约时间。 例如,若要设置机器学习工作室(经典)工作区,需要先配置 Azure 存储帐户,然后再部署工作区。 想象为数百个工作区手动执行此操作的样子。 更轻松的替代方法是使用 Azure 资源管理器模板部署工作室(经典)工作区及其所有依赖项。 本文将引导逐步完成此过程。 有关 Azure 资源管理器的整体概述,请参阅 Azure 资源管理器概述

注意

建议使用 Azure Az PowerShell 模块与 Azure 交互。 请参阅安装 Azure PowerShell 以开始使用。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az

分布说明:创建机器学习工作区

我们将创建 Azure 资源组,然后使用资源管理器模板部署新的 Azure 存储帐户和新的机器学习工作室(经典)工作区。 部署完成后,我们将打印有关所创建工作区的重要信息(主密钥、workspaceID 和该工作区的 URL)。

创建 Azure 资源管理器模板

机器学习工作区需要 Azure 存储帐户才能存储链接的数据集。 下面的模板使用资源组名称生成存储帐户名称和工作区名称。 创建工作区时,它还将存储帐户名称用作属性。

{
    "contentVersion": "1.0.0.0",
    "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentTemplate.json#",
    "variables": {
        "namePrefix": "[resourceGroup().name]",
        "location": "[resourceGroup().location]",
        "mlVersion": "2016-04-01",
        "stgVersion": "2015-06-15",
        "storageAccountName": "[concat(variables('namePrefix'),'stg')]",
        "mlWorkspaceName": "[concat(variables('namePrefix'),'mlwk')]",
        "mlResourceId": "[resourceId('Microsoft.MachineLearning/workspaces', variables('mlWorkspaceName'))]",
        "stgResourceId": "[resourceId('Microsoft.Storage/storageAccounts', variables('storageAccountName'))]",
        "storageAccountType": "Standard_LRS"
    },
    "resources": [
        {
            "apiVersion": "[variables('stgVersion')]",
            "name": "[variables('storageAccountName')]",
            "type": "Microsoft.Storage/storageAccounts",
            "location": "[variables('location')]",
            "properties": {
                "accountType": "[variables('storageAccountType')]"
            }
        },
        {
            "apiVersion": "[variables('mlVersion')]",
            "type": "Microsoft.MachineLearning/workspaces",
            "name": "[variables('mlWorkspaceName')]",
            "location": "[variables('location')]",
            "dependsOn": ["[variables('stgResourceId')]"],
            "properties": {
                "UserStorageAccountId": "[variables('stgResourceId')]"
            }
        }
    ],
    "outputs": {
        "mlWorkspaceObject": {"type": "object", "value": "[reference(variables('mlResourceId'), variables('mlVersion'))]"},
        "mlWorkspaceToken": {"type": "string", "value": "[listWorkspaceKeys(variables('mlResourceId'), variables('mlVersion')).primaryToken]"},
        "mlWorkspaceWorkspaceID": {"type": "string", "value": "[reference(variables('mlResourceId'), variables('mlVersion')).WorkspaceId]"},
        "mlWorkspaceWorkspaceLink": {"type": "string", "value": "[concat('https://studio.azureml.net/Home/ViewWorkspace/', reference(variables('mlResourceId'), variables('mlVersion')).WorkspaceId)]"}
    }
}

将此模板保存为 c:\temp 下的 mlworkspace.json 文件。

根据模板部署资源组

  • 打开 PowerShell
  • 为 Azure 资源管理器和 Azure 服务管理安装模块
# Install the Azure Resource Manager modules from the PowerShell Gallery (press "A")
Install-Module Az -Scope CurrentUser

# Install the Azure Service Management modules from the PowerShell Gallery (press "A")
Install-Module Azure -Scope CurrentUser

这些步骤将下载和安装完成剩余步骤所需的模块。 这在执行 PowerShell 命令的环境中仅需操作一次。

  • 向 Azure 进行身份验证
# Authenticate (enter your credentials in the pop-up window)
Connect-AzAccount

此步骤需要为每个会话重复执行。 验证身份后,会显示订阅信息。

Azure 帐户

既然我们可以访问 Azure,我们也可以创建资源组。

  • 创建资源组
$rg = New-AzResourceGroup -Name "uniquenamerequired523" -Location "South Central US"
$rg

验证资源组是否预配正确。 ProvisioningState 应为“Succeeded”。资源组名称由模板用来生成存储帐户名称。 存储帐户名称长度必须为 3 到 24 个字符,并且只能使用数字和小写字母。

资源组

  • 使用资源组部署可部署新机器学习工作区。
# Create a Resource Group, TemplateFile is the location of the JSON template.
$rgd = New-AzResourceGroupDeployment -Name "demo" -TemplateFile "C:\temp\mlworkspace.json" -ResourceGroupName $rg.ResourceGroupName

完成部署后,可直接访问所部属工作区的属性。 例如,可访问主密钥令牌。

# Access Machine Learning Studio (classic) Workspace Token after its deployment.
$rgd.Outputs.mlWorkspaceToken.Value

另一种检索现有工作区令牌的方法是使用 Invoke-AzResourceAction 命令。 例如,可列出所有工作区的主要和辅助令牌。

# List the primary and secondary tokens of all workspaces
Get-AzResource |? { $_.ResourceType -Like "*MachineLearning/workspaces*"} |ForEach-Object { Invoke-AzResourceAction -ResourceId $_.ResourceId -Action listworkspacekeys -Force}

预配工作区后,还可使用适用于机器学习工作室(经典)的 PowerShell 模块自动执行许多机器学习工作室(经典)任务。

后续步骤