目录
- 先决条件
- 了解模板
- 配置模板
- 连接到工作区
- 疑难解答
- 错误:Windows 计算机名的长度不能超过 15 个字符,并且不能全为数字或包含以下字符
本教程介绍如何使用 [Microsoft Bicep]和 [Hashicorp Terraform]模板创建以下 Azure 资源:
- Azure 虚拟网络。 以下资源在此 VNet 后面进行保护:
- Azure 机器学习工作区
- Azure 机器学习计算实例
- Azure 机器学习计算群集
- Azure 存储帐户
- Azure Key Vault
- Azure Application Insights
- Azure 容器注册表
- Azure Bastion 主机
- Azure 机器学习虚拟机 (Data Science Virtual Machine)
- Bicep 模板还会创建 Azure Kubernetes 服务群集,并为其创建单独的资源组。
- Azure 机器学习工作区
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。
I
先决条件
在使用本文中的步骤之前,必须有一个 Azure 订阅。 如果还没有 Azure 订阅,可以创建一个免费帐户。
还必须具有 Bash 或 Azure PowerShell 命令行。
-
若要安装命令行工具,请参阅设置 Bicep 开发和部署环境。
-
本文中使用的 Bicep 模板位于 https://github.com/Azure/azure-quickstart-templates/blob/master/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure。 使用以下命令将 GitHub 存储库克隆到开发环境:
git clone https://github.com/Azure/azure-quickstart-templates cd azure-quickstart-templates/quickstarts/microsoft.machinelearningservices/machine-learning-end-to-end-secure
本文中使用的 Terraform 模板文件位于 https://github.com/Azure/terraform/tree/master/quickstart/201-machine-learning-moderately-secure。 若要在本地克隆存储库并将目录更改为模板文件所在的位置,请从命令行使用以下命令:
```
git clone https://github.com/Azure/terraform
cd terraform/quickstart/201-machine-learning-moderately-secure
```
了解模板
- [Bicep]
- [Terraform]
Bicep 模板由 main.bicep 和 modules 子目录中的 .bicep
文件组成。 下表描述了每个文件负责的内容:
若要更新 API 版本,请查找资源类型的 Microsoft.MachineLearningServices/<resource>
条目,并将其更新为最新版本。 以下示例显示 Azure 机器学习工作区的一个条目,该工作区使用 API 版本 2022-05-01
:
resource machineLearning 'Microsoft.MachineLearningServices/workspaces@2022-05-01' = {
该模板由多个文件组成。 下表描述了每个文件负责的内容:
文件 | 说明 |
---|---|
variables.tf | 模板使用的变量和默认值。 |
main.tf | 指定 Azure 资源管理器提供程序并定义资源组。 |
network.tf | 定义 Azure 虚拟网络、子网和网络安全组。 |
bastion.tf | 定义 Azure Bastion 主机和关联的 NSG。 Azure Bastion 允许你使用 Web 浏览器轻松访问 VNet 中的 VM。 |
dsvm.tf | 定义 Data Science Virtual Machine (DSVM)。 Azure Bastion 用于通过 Web 浏览器访问此 VM。 |
workspace.tf | 定义 Azure 机器学习工作区。 包括 Azure 存储、Key Vault、Application Insights 和容器注册表的依赖项资源。 |
compute.tf | 定义 Azure 机器学习计算实例和群集。 |
配置模板
- [Bicep]
- [Terraform]
要运行 Bicep 模板,请使用 main.bicep
文件所在的 machine-learning-end-to-end-secure
中的以下命令:
-
若要创建新的 Azure 资源组,请使用以下命令。 将
exampleRG
替换为资源组名称,将eastus
替换为要使用的 Azure 区域:- [Azure CLI]
- [Azure PowerShell]
az group create --name exampleRG --location eastus
New-AzResourceGroup -Name exampleRG -Location eastus
-
若要运行模板,请使用以下命令。 将
prefix
替换为唯一前缀。 创建 Azure 机器学习所需的 Azure 资源时,将使用该前缀。 将securepassword
替换为跳转盒的安全密码。 该密码用于跳转盒的登录帐户(以下示例中的azureadmin
):提示
prefix
必须为 5 个或更少字符。 它不能全为数字或包含以下字符:~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
。- [Azure CLI]
- [Azure PowerShell]
az deployment group create \--resource-group exampleRG \--template-file main.bicep \--parameters \prefix=prefix \dsvmJumpboxUsername=azureadmin \dsvmJumpboxPassword=securepassword
$dsvmPassword = ConvertTo-SecureString "mysecurepassword" -AsPlainText -Force New-AzResourceGroupDeployment -ResourceGroupName exampleRG `-TemplateFile ./main.bicep `-prefix "prefix" `-dsvmJumpboxUsername "azureadmin" `-dsvmJumpboxPassword $dsvmPassword
要运行 Terraform 模板,请使用模板文件所在的 201-machine-learning-moderately-secure
目录中的以下命令:
-
若要初始化目录以使用 Terraform,请执行以下命令:
terraform init
-
若要创建配置,请使用以下命令。 使用
-var
参数设置模板使用的变量的值。 有关变量的完整列表,请参阅 variables.tf 文件:terraform plan \-var name=myworkspace \-var environment=dev \-var location=westus \-var dsvm_name=jumpbox \-var dsvm_host_password=secure_password \-out azureml.tfplan
此命令完成后,配置将显示在终端中。 若要再次显示,请使用
terraform show azureml.tfplan
命令。 -
若要运行模板并将保存的配置应用于 Azure 订阅,请使用以下命令:
terraform apply azureml.tfplan
处理模板时会显示进度。
连接到工作区
模板完成后,使用以下步骤连接到 DSVM:
- 从 Azure 门户中,选择与模板一起使用的 Azure 资源组。 然后,选择模板创建的 Data Science Virtual Machine。 如果在查找时遇到问题,请使用筛选器部分来筛选虚拟机的类型。
- 从虚拟机的“概述”部分中,选择“连接”,然后从下拉列表中选择“Bastion”。
-
出现提示时,提供配置模板时指定的用户名和密码,然后选择“连接”。
重要
首次连接到 DSVM 桌面时,将打开 PowerShell 窗口并开始运行脚本。 在继续执行下一步之前,请允许此操作完成。
-
从 DSVM 桌面启动 Microsoft Edge,并输入
https://ml.azure.com
作为地址。 登录到 Azure 订阅,然后选择模板创建的工作区。 将显示工作区工作室。
疑难解答
错误:Windows 计算机名的长度不能超过 15 个字符,并且不能全为数字或包含以下字符
当 DSVM 跳转框的名称大于 15 个字符或包含以下字符之一时,可能会发生此错误:~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
。
使用 Bicep 模板时,将使用提供给模板的前缀值以编程方式生成跳转盒名称。 为了确保名称不超过 15 个字符或包含任何无效字符,请使用不超过 5 个字符的前缀,并且不要在前缀中使用以下任何字符:~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
。
使用 Terraform 模板时,将使用 dsvm_name
参数传递跳转盒名称。 为了避免此错误,请使用不超过 15 个字符的名称,并且名称中不要包含以下任何字符:~ ! @ # $ % ^ & * ( ) = + _ [ ] { } \ | ; : . ' " , < > / ?
。
关注TechLead,分享AI全维度知识。作者拥有10+年互联网服务架构、AI产品研发经验、团队管理经验,同济本复旦硕,复旦机器人智能实验室成员,阿里云认证的资深架构师,项目管理专业人士,上亿营收AI产品研发负责人。