使用 Terraform (預覽來管理 Azure Machine Learning 工作區)

在本文中,您將瞭解如何使用 Terraform 設定檔來建立和管理 Azure Machine Learning 工作區。 Terraform以範本為基礎的設定檔可讓您以可重複且可預測的方式來定義、建立及設定 Azure 資源。 Terraform 會追蹤資源狀態,而且可以清除和終結資源。

Terraform 設定是一份檔,可定義部署所需的資源。 它也可以指定部署變數。 使用設定時,會使用變數來提供輸入值。

重要

此功能目前為公開預覽狀態。 此預覽版本是在沒有服務等級協定的情況下提供,不建議用於生產工作負載。 可能不支援特定功能,或可能已經限制功能。 如需詳細資訊,請參閱 Microsoft Azure 預覽版增補使用條款

必要條件

宣告 Azure 提供者

建立宣告 Azure 提供者的 Terraform 設定檔:

  1. 建立名為 main.tf 的新檔案。 如果使用 Azure Cloud Shell,請使用 bash:

    code main.tf
    
  2. 將下列程式碼貼到編輯器中:

    main.tf

    terraform {
      required_version = ">=1.0"
    
      required_providers {
        azurerm = {
          source  = "hashicorp/azurerm"
          version = "=2.76.0"
        }
      }
    }
    
    provider "azurerm" {
      features {}
    }
    
    data "azurerm_client_config" "current" {}
    
    resource "azurerm_resource_group" "default" {
      name     = "rg-${var.name}-${var.environment}"
      location = var.location
    }
    
  3. 儲存檔案 ( <Ctrl>S) 並結束編輯器 ( <Ctrl>Q)。

部署工作區

您可以使用下列 Terraform 設定來建立 Azure Machine Learning 工作區。 當您建立 Azure Machine Learning 工作區時,需要不同的其他服務作為相依性。 此範本也會將這些 相關聯的資源指定給工作區。 視您的需求而定,您可以選擇使用可建立具有公用或私人網路絡連線能力之資源的範本。

Azure 中的某些資源需要全域唯一的名稱。 使用下列範本部署您的資源之前,請先將 name 變數設定為唯一的值。

variables.tf

variable "name" {
  type        = string
  description = "Name of the deployment"
}

variable "environment" {
  type        = string
  description = "Name of the environment"
  default     = "dev"
}

variable "location" {
  type        = string
  description = "Location of the resources"
  default     = "East US"
}

workspace.tf

# Dependent resources for Azure Machine Learning
resource "azurerm_application_insights" "default" {
  name                = "appi-${var.name}-${var.environment}"
  location            = azurerm_resource_group.default.location
  resource_group_name = azurerm_resource_group.default.name
  application_type    = "web"
}

resource "azurerm_key_vault" "default" {
  name                     = "kv-${var.name}-${var.environment}"
  location                 = azurerm_resource_group.default.location
  resource_group_name      = azurerm_resource_group.default.name
  tenant_id                = data.azurerm_client_config.current.tenant_id
  sku_name                 = "premium"
  purge_protection_enabled = false
}

resource "azurerm_storage_account" "default" {
  name                     = "st${var.name}${var.environment}"
  location                 = azurerm_resource_group.default.location
  resource_group_name      = azurerm_resource_group.default.name
  account_tier             = "Standard"
  account_replication_type = "GRS"
}

resource "azurerm_container_registry" "default" {
  name                = "cr${var.name}${var.environment}"
  location            = azurerm_resource_group.default.location
  resource_group_name = azurerm_resource_group.default.name
  sku                 = "Premium"
  admin_enabled       = true
}

# Machine Learning workspace
resource "azurerm_machine_learning_workspace" "default" {
  name                    = "mlw-${var.name}-${var.environment}"
  location                = azurerm_resource_group.default.location
  resource_group_name     = azurerm_resource_group.default.name
  application_insights_id = azurerm_application_insights.default.id
  key_vault_id            = azurerm_key_vault.default.id
  storage_account_id      = azurerm_storage_account.default.id
  container_registry_id   = azurerm_container_registry.default.id

  identity {
    type = "SystemAssigned"
  }
}

疑難排解

資源提供者錯誤

建立 Azure Machine Learning 工作區或工作區所使用的資源時,您可能會收到類似下列訊息的錯誤:

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

大部分資源提供者都會自動註冊,但並非全部。 如果您收到此訊息,則需要註冊先前提及的提供者。

如需有關註冊資源提供者的詳細資訊,請參閱解決資源提供者註冊的錯誤

目前的限制

  • 目前無法使用 Terraform 來部署使用客戶管理的加密金鑰的工作區。

下一步