Hantera Azure Machine Learning med Terraform (förhandsversion)

I den här artikeln får du lära dig hur du skapar och hanterar en Azure Machine Learning med terraform-konfigurationsfiler. Med Terraformsmallbaserade konfigurationsfiler kan du definiera, skapa och konfigurera Azure-resurser på ett upprepningsbart och förutsägbart sätt. Terraform spårar resurstillstånd och kan rensa och förstöra resurser.

En Terraform-konfiguration är ett dokument som definierar de resurser som behövs för en distribution. Den kan också ange distributionsvariabler. Variabler används för att ange indatavärden när du använder konfigurationen.

Viktigt

Den här funktionen är för närvarande i allmänt tillgänglig förhandsversion. Den här förhandsversionen tillhandahålls utan serviceavtal och rekommenderas inte för produktionsarbetsbelastningar. Vissa funktioner kanske inte stöds eller kan vara begränsade. Mer information finns i Kompletterande villkor för användning av Microsoft Azure-förhandsversioner.

Krav

Deklarera Azure-providern

Skapa Terraform-konfigurationsfilen som deklarerar Azure-providern:

  1. Skapa en ny fil med namnet main.tf. Om du arbetar med Azure Cloud Shell använder du bash:

    code main.tf
    
  2. Klistra in följande kod i redigeringsprogrammet:

    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. Spara filen (< Ctrl>S) och avsluta redigeraren ( Ctrl>< Q).

Distribuera en arbetsyta

Följande Terraform-konfigurationer kan användas för att skapa en Azure Machine Learning arbetsyta. När du skapar Azure Machine Learning en arbetsyta krävs olika andra tjänster som beroenden. Mallen anger också dessa associerade resurser för arbetsytan. Beroende på dina behov kan du välja att använda mallen som skapar resurser med antingen offentlig eller privat nätverksanslutning.

Vissa resurser i Azure kräver globalt unika namn. Innan du distribuerar dina resurser med hjälp av följande mallar anger du name variabeln till ett värde som är unikt.

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"
  }
}

Felsökning

Resursproviderfel

När du skapar en Azure Machine Learning arbets yta eller en resurs som används av arbets ytan kan du få ett fel meddelande som liknar följande meddelanden:

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

De flesta resurs leverantörer registreras automatiskt, men inte alla. Om du får det här meddelandet måste du registrera den angivna providern.

Information om hur du registrerar resurs leverantörer finns i lösa fel för registrering av resurs leverantör.

Aktuella begränsningar

  • Det går för närvarande inte att använda Terraform för distribution av arbetsytor med hjälp av kundbaserade krypteringsnycklar.

Nästa steg