Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Anmärkning
Informationen i den här artikeln är specifik för ett hubbbaserat projekt och gäller inte för ett Foundry-projekt. Se Hur vet jag vilken typ av projekt jag har? och Skapa ett hubbbaserat projekt.
I den här artikeln använder du Terraform för att skapa en Azure AI Foundry-hubb , ett projekt och en AI-tjänstanslutning. En hubb är en central plats för dataforskare och utvecklare att samarbeta i maskininlärningsprojekt. Det ger ett delat samarbetsutrymme för att skapa, träna och distribuera maskininlärningsmodeller. Hubben är integrerad med Azure Machine Learning och andra Azure-tjänster, vilket gör den till en omfattande lösning för maskininlärningsuppgifter. Med hubben kan du också hantera och övervaka dina AI-distributioner så att de fungerar som förväntat.
Terraform möjliggör definition, förhandsversion och distribution av molninfrastruktur. Med Terraform skapar du konfigurationsfiler med hjälp av HCL-syntax. Med HCL-syntaxen kan du ange molnleverantören – till exempel Azure – och de element som utgör din molninfrastruktur. När du har skapat konfigurationsfilerna skapar du en körningsplan som gör att du kan förhandsgranska ändringarna i infrastrukturen innan de distribueras. När du har verifierat ändringarna tillämpar du genomförandeplanen för att implementera infrastrukturen.
- Skapa en resursgrupp
- Konfigurera ett lagringskonto
- Upprätta ett nyckelvalv
- Konfigurera AI-tjänster
- Skapa en Azure AI Foundry-hubb
- Utveckla ett Azure AI Foundry-projekt
- Upprätta en ANSLUTNING till AI-tjänster
Förutsättningar
Skapa ett Azure-konto med en aktiv prenumeration. Du kan skapa ett konto kostnadsfritt.
Utför implementeringen av Terraform-koden
Anmärkning
Exempelkoden för den här artikeln finns på Azure Terraform GitHub-lagringsplatsen. Du kan visa loggfilen som innehåller testresultaten från aktuella och tidigare versioner av Terraform. Du kan behöva uppdatera de resursproviderversioner som används i mallen för att kunna använda de senaste tillgängliga versionerna.
Se fler artiklar och exempelkod som visar hur du använder Terraform för att hantera Azure-resurser
Skapa en katalog där du kan testa och köra Terraform-exempelkoden och göra den till den aktuella katalogen.
Skapa en fil med namnet
providers.tf
och infoga följande kod.terraform { required_version = ">= 1.0" required_providers { azurerm = { source = "hashicorp/azurerm" version = "~>4.0" } random = { source = "hashicorp/random" version = "~>3.0" } } } provider "azurerm" { features { key_vault { recover_soft_deleted_key_vaults = false purge_soft_delete_on_destroy = false purge_soft_deleted_keys_on_destroy = false } resource_group { prevent_deletion_if_contains_resources = false } } }
Skapa en fil med namnet
main.tf
och infoga följande kod.# Random pet to be used in resource group name resource "random_pet" "rg_name" { prefix = var.resource_group_name_prefix } # Create a resource group resource "azurerm_resource_group" "example" { location = var.resource_group_location name = random_pet.rg_name.id } # Retrieve information about the current Azure client configuration data "azurerm_client_config" "current" {} # Generate random value for unique resource naming resource "random_string" "example" { length = 8 lower = true numeric = false special = false upper = false } # Create an Azure Key Vault resource resource "azurerm_key_vault" "example" { name = random_string.example.result # Name of the Key Vault location = azurerm_resource_group.example.location # Location from the resource group resource_group_name = azurerm_resource_group.example.name # Resource group name tenant_id = data.azurerm_client_config.current.tenant_id # Azure tenant ID sku_name = "standard" # SKU tier for the Key Vault purge_protection_enabled = true # Enables purge protection to prevent accidental deletion } # Set an access policy for the Key Vault to allow certain operations resource "azurerm_key_vault_access_policy" "test" { key_vault_id = azurerm_key_vault.example.id # Key Vault reference tenant_id = data.azurerm_client_config.current.tenant_id # Tenant ID object_id = data.azurerm_client_config.current.object_id # Object ID of the principal key_permissions = [ # List of allowed key permissions "Create", "Get", "Delete", "Purge", "GetRotationPolicy", ] } # Create an Azure Storage Account resource "azurerm_storage_account" "example" { name = random_string.example.result # Storage account name location = azurerm_resource_group.example.location # Location from the resource group resource_group_name = azurerm_resource_group.example.name # Resource group name account_tier = "Standard" # Performance tier account_replication_type = "LRS" # Locally-redundant storage replication } # Deploy Azure AI Services resource resource "azurerm_ai_services" "example" { name = "exampleaiservices" # AI Services resource name location = azurerm_resource_group.example.location # Location from the resource group resource_group_name = azurerm_resource_group.example.name # Resource group name sku_name = "S0" # Pricing SKU tier custom_subdomain_name = "exampleaiservices" # Custom subdomain name } # Create Azure AI Foundry service resource "azurerm_ai_foundry" "example" { name = "exampleaihub" # AI Foundry service name location = azurerm_ai_services.example.location # Location from the AI Services resource resource_group_name = azurerm_resource_group.example.name # Resource group name storage_account_id = azurerm_storage_account.example.id # Associated storage account key_vault_id = azurerm_key_vault.example.id # Associated Key Vault identity { type = "SystemAssigned" # Enable system-assigned managed identity } } # Create an AI Foundry Project within the AI Foundry service resource "azurerm_ai_foundry_project" "example" { name = "example" # Project name location = azurerm_ai_foundry.example.location # Location from the AI Foundry service ai_services_hub_id = azurerm_ai_foundry.example.id # Associated AI Foundry service identity { type = "SystemAssigned" # Enable system-assigned managed identity } }
Skapa en fil med namnet
variables.tf
och infoga följande kod.variable "resource_group_location" { type = string default = "eastus" description = "Location of the resource group." } variable "resource_group_name_prefix" { type = string default = "rg" description = "Prefix of the resource group name that's combined with a random ID so name is unique in your Azure subscription." }
Skapa en fil med namnet
outputs.tf
och infoga följande kod.output "resource_group_name" { value = azurerm_resource_group.example.id } output "workspace_name" { value = azurerm_ai_foundry.example.name }
Initiera Terraform
Kör terraform init för att initiera Terraform-distributionen. Det här kommandot laddar ned den Azure-provider som krävs för att hantera dina Azure-resurser.
terraform init -upgrade
Viktiga punkter:
- Parametern
-upgrade
uppgraderar nödvändiga provider-plugin-program till den senaste versionen som uppfyller konfigurationens versionsbegränsningar.
Skapa en Terraform-utförandeplan
Kör terraform plan för att skapa en körningsplan.
terraform plan -out main.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en utförandeplan, men utför den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om åtgärdsplanen stämmer överens med dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria parametern
-out
kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att den plan som du har granskat är exakt vad som tillämpas.
Tillämpa en Terraform-utförandeplan
Kör terraform apply för att tillämpa körningsplanen på din molninfrastruktur.
terraform apply main.tfplan
Viktiga punkter:
-
terraform apply
Exempelkommandot förutsätter att du tidigare kördeterraform plan -out main.tfplan
. - Om du har angett ett annat filnamn för parametern
-out
använder du samma filnamn i anropet tillterraform apply
. - Om du inte använde parametern
-out
anropar duterraform apply
utan några parametrar.
Verifiera resultatet
Hämta namnet på Azure-resursgruppen.
resource_group_name=$(terraform output -raw resource_group_name)
Hämta arbetsytans namn.
workspace_name=$(terraform output -raw workspace_name)
Kör az ml workspace show för att visa information om den nya arbetsytan.
az ml workspace show --resource-group $resource_group_name \ --name $workspace_name
Rensa resurser
Gör följande när du inte längre behöver de resurser som skapats via Terraform:
Kör terraform plan och specificera
destroy
flaggan.terraform plan -destroy -out main.destroy.tfplan
Viktiga punkter:
- Kommandot
terraform plan
skapar en utförandeplan, men utför den inte. I stället avgör den vilka åtgärder som krävs för att skapa den konfiguration som anges i konfigurationsfilerna. Med det här mönstret kan du kontrollera om åtgärdsplanen stämmer överens med dina förväntningar innan du gör några ändringar i faktiska resurser. - Med den valfria parametern
-out
kan du ange en utdatafil för planen. Med hjälp av parametern-out
ser du till att den plan som du har granskat är exakt vad som tillämpas.
- Kommandot
Kör terraform apply för att tillämpa utförandeplanen.
terraform apply main.destroy.tfplan
Felsöka Terraform i Azure
Felsöka vanliga problem när du använder Terraform i Azure.