Uw Azure Machine Learning beheren met Behulp van Terraform (preview)

In dit artikel leert u hoe u een werkruimte voor Azure Machine Learning maken en beheren met behulp van Terraform-configuratiebestanden. Met de op sjablonen gebaseerde configuratiebestanden van Terraformkunt u Azure-resources op een herhaalbare en voorspelbare manier definiëren, maken en configureren. Terraform houdt de resourcetoestand bij en kan resources ops schonen en vernietigen.

Een Terraform-configuratie is een document dat de resources definieert die nodig zijn voor een implementatie. Er kunnen ook implementatievariabelen worden opgegeven. Variabelen worden gebruikt om invoerwaarden op te geven bij het gebruik van de configuratie.

Belangrijk

Deze functie is momenteel beschikbaar als openbare preview-versie. Deze preview-versie wordt aangeboden zonder Service Level Agreement en wordt niet aanbevolen voor productieworkloads. Misschien worden bepaalde functies niet ondersteund of zijn de mogelijkheden ervan beperkt. Zie Supplemental Terms of Use for Microsoft Azure Previews (Aanvullende gebruiksvoorwaarden voor Microsoft Azure-previews) voor meer informatie.

Vereisten

De Azure-provider declareren

Maak het Terraform-configuratiebestand dat de Azure-provider declareer:

  1. Maak een nieuw bestand met de naam main.tf. Als u met Azure Cloud Shell werkt, gebruikt u bash:

    code main.tf
    
  2. Plak de volgende code in de editor:

    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. Sla het bestand ( <Ctrl+S) op en sluit de editor af ( <Ctrl+Q).

Een werkruimte implementeren

De volgende Terraform-configuraties kunnen worden gebruikt om een Azure Machine Learning maken. Wanneer u een werkruimte Azure Machine Learning, zijn verschillende andere services vereist als afhankelijkheden. Met de sjabloon worden ook deze gekoppelde resources aan de werkruimte opgegeven. Afhankelijk van uw behoeften kunt u ervoor kiezen om de sjabloon te gebruiken die resources maakt met een openbare of particuliere netwerkverbinding.

Voor sommige resources in Azure zijn wereldwijd unieke namen vereist. Voordat u uw resources implementeert met behulp van de volgende sjablonen, stelt u de variabele in name op een unieke waarde.

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

Problemen oplossen

Fouten met resourceproviders

Wanneer u een Azure Machine Learning-werkruimte maakt of een resource die door de werkruimte wordt gebruikt, ontvangt u mogelijk een foutbericht die op een van de volgende berichten lijkt:

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

De meeste resourceproviders worden automatisch geregistreerd, maar niet allemaal. Als u dit bericht ontvangt, moet u de vermelde provider registreren.

Zie Fouten oplossen voor de registratie van de resourceprovider voor informatie over het registreren van resourceproviders.

Huidige beperkingen

  • Het is momenteel niet mogelijk om Terraform te gebruiken voor de implementatie van werkruimten met behulp van door de klant beheerde versleutelingssleutels.

Volgende stappen