Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica solo a:Portale di Foundry (versione classica). Questo articolo non è disponibile per il nuovo portale foundry.
Altre informazioni sul nuovo portale.
Nota
I collegamenti in questo articolo potrebbero aprire contenuto nella nuova documentazione di Microsoft Foundry anziché nella documentazione di Foundry (versione classica) visualizzata.
Importante
Questo articolo fornisce il supporto legacy per i progetti basati su hub. Non funzionerà per i progetti Foundry. Vedere Come si conosce il tipo di progetto di cui si dispone?
In questo articolo, si utilizza Terraform per creare un hub Microsoft Foundry, un progetto e una connessione agli strumenti di Foundry. Un hub è una posizione centrale per data scientist e sviluppatori che collaborano ai progetti di Machine Learning. Offre uno spazio condiviso e collaborativo per creare, eseguire il training e distribuire modelli di Machine Learning. L'hub è integrato con Azure Machine Learning e altri servizi Azure, rendendolo una soluzione completa per le attività di Machine Learning. L'hub consente anche di gestire e monitorare le distribuzioni di intelligenza artificiale, assicurandosi che funzionino come previsto.
Terraform abilita la definizione, l'anteprima e la distribuzione dell'infrastruttura cloud. Con Terraform si creano file di configurazione usando la sintassi HCL. La sintassi HCL consente di specificare il provider di servizi cloud, ad esempio Azure, e gli elementi che costituiscono l'infrastruttura cloud. Dopo aver creato i file di configurazione, si crea un piano di esecuzione che consente di visualizzare in anteprima le modifiche dell'infrastruttura prima della distribuzione. Dopo aver verificato le modifiche, applicare il piano di esecuzione per distribuire l'infrastruttura.
- Creare un gruppo di risorse
- Configurare un account di archiviazione
- Creare un Key Vault
- Configurare gli strumenti della fonderia
- Creare un hub Foundry
- Sviluppare un progetto basato su hub
- Stabilire una connessione a Foundry Tools
Prerequisiti
-
Un account Azure con una sottoscrizione attiva. Se non ne hai uno, crea un account gratuito Azure, che include una sottoscrizione di valutazione gratuita.
Azure role: Proprietario o Collaboratore della sottoscrizione Azure. Questo ruolo è richiesto per creare gruppi di risorse, account di archiviazione, key vaults e risorse Foundry.
Creare file di configurazione di Terraform
Verranno creati quattro file Terraform per configurare il provider Azure, definire le risorse foundry, dichiarare le variabili di input e i risultati della distribuzione di output.
Nota
Il codice di esempio per questo articolo si trova nel repository Azure Terraform GitHub. È possibile visualizzare il file di log contenente i risultati test delle versioni correnti e precedenti di Terraform. Potrebbe essere necessario aggiornare le versioni del provider di risorse usate nel modello per usare le versioni più recenti disponibili.
Vedere altre articles e codice di esempio che illustra come usare Terraform per gestire le risorse Azure.
Creare una directory per testare ed eseguire il codice Terraform di esempio. Impostarla come directory corrente.
Creare un file denominato
providers.tfe inserire il codice seguente.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 } } }Questo file configura il provider Azure Terraform, specificando la sottoscrizione Azure e le versioni del provider necessarie. Stabilisce la connessione tra Terraform e la sottoscrizione Azure.
Reference:Terraform Azure Provider
Creare un file denominato
main.tfe inserire il codice seguente.# 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 } }Questo file definisce le risorse principali di Foundry: un gruppo di risorse, un account di archiviazione, un insieme di credenziali delle chiavi, un hub Foundry, un progetto e una connessione agli strumenti foundry. Queste risorse costituiscono la base per l'ambiente di sviluppo di intelligenza artificiale.
Reference:azurerm_machine_learning_workspace, azurerm_storage_account, azurerm_key_vault
Creare un file denominato
variables.tfe inserire il codice seguente.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." }Questo file dichiara le variabili di input per la configurazione di Terraform, ad esempio posizione, ambiente e denominazione delle risorse. Queste variabili consentono di personalizzare la distribuzione senza modificare le definizioni delle risorse principali.
Riferimento:Variabili di Input di Terraform
Creare un file denominato
outputs.tfe inserire il codice seguente.output "resource_group_name" { value = azurerm_resource_group.example.id } output "workspace_name" { value = azurerm_ai_foundry.example.name }Questo file definisce i valori di output che visualizzano i risultati della distribuzione dopo il completamento dell'applicazione di Terraform. Gli output includono il nome del gruppo di risorse, il nome dell'area di lavoro e altri identificatori di risorsa a cui è necessario fare riferimento o gestire le risorse foundry.
Riferimenti:Valori di output terraform
Eseguire l'autenticazione per Azure
Eseguire az login senza parametri e seguire le istruzioni per accedere a Azure.
az loginPunti chiave:
- Al termine dell'accesso,
az loginvisualizza un elenco delle sottoscrizioni Azure associate al account Microsoft connesso, inclusa la sottoscrizione predefinita.
- Al termine dell'accesso,
Per confermare la sottoscrizione corrente Azure, eseguire az account show.
az account show
Inizializzare Terraform
Eseguire terraform init per inizializzare la distribuzione di Terraform. Questo comando scarica il provider di Azure necessario per gestire le risorse Azure.
terraform init -upgrade
Punti chiave:
- Il
-upgradeparametro aggiorna i plug-in del provider necessari alla versione più recente conforme ai vincoli di versione della configurazione.
Creare un piano di esecuzione Terraform
Eseguire terraform plan per creare un piano di esecuzione.
terraform plan -out main.tfplan
Punti chiave:
- Il
terraform plancomando crea un piano di esecuzione, ma non lo esegue. Determina invece le azioni necessarie per creare la configurazione specificata nei file di configurazione. Questo modello consente di verificare se il piano di esecuzione corrisponde alle aspettative prima di apportare modifiche alle risorse effettive. - Il parametro facoltativo
-outconsente di specificare un file di output per il piano. L'uso del-outparametro garantisce che il piano esaminato sia esattamente quello applicato.
Applicare un piano di esecuzione Terraform
Eseguire terraform apply per applicare il piano di esecuzione all'infrastruttura cloud.
terraform apply main.tfplan
Punti chiave:
- Il comando di esempio
terraform applypresuppone che sia stato eseguitoterraform plan -out main.tfplanin precedenza . - Se è stato specificato un nome file diverso per il
-outparametro , usare lo stesso nome file nella chiamata aterraform apply. - Se il parametro non è stato usato
-out, chiamareterraform applysenza parametri.
Verificare i risultati
Ottenere il nome del gruppo di risorse Azure.
resource_group_name=$(terraform output -raw resource_group_name)Ottenere il nome dell'area di lavoro.
workspace_name=$(terraform output -raw workspace_name)Eseguire az ml workspace show per visualizzare informazioni sulla nuova area di lavoro.
az ml workspace show --resource-group $resource_group_name \ --name $workspace_name
Pulire le risorse
Quando le risorse create tramite Terraform non sono più necessarie, seguire questa procedura:
Eseguire terraform plan e specificare il
destroyflag.terraform plan -destroy -out main.destroy.tfplanPunti chiave:
- Il
terraform plancomando crea un piano di esecuzione, ma non lo esegue. Determina invece le azioni necessarie per creare la configurazione specificata nei file di configurazione. Questo modello consente di verificare se il piano di esecuzione corrisponde alle aspettative prima di apportare modifiche alle risorse effettive. - Il parametro facoltativo
-outconsente di specificare un file di output per il piano. L'uso del-outparametro garantisce che il piano esaminato sia esattamente quello applicato.
- Il
Eseguire terraform apply per applicare il piano di esecuzione.
terraform apply main.destroy.tfplan
Risolvere i problemi di Terraform in Azure
Risolvere i problemi comuni nell'utilizzo di Terraform su Azure.