Udostępnij przez


Zarządzanie zasobami rozwiązania Microsoft Foundry za pomocą narzędzia Terraform

W tym artykule użyjesz narzędzia Terraform do zarządzania zasobem rozwiązania Microsoft Foundry . Dowiesz się, jak za pomocą narzędzia Terraform zarządzać konfiguracjami zarządzania rozwiązaniami Foundry, w tym projektami, wdrożeniami i połączeniami.

Do zarządzania zasobami Foundry możesz użyć dostawcy Terraform AzAPI lub AzureRM. Chociaż dostawca AzAPI umożliwia dostęp do wszystkich konfiguracji warstwy sterowania Foundry, w tym funkcji dostępnych jako wersja zapoznawcza, wariant AzureRM jest ograniczony do podstawowych funkcji zarządzania.

Akcja Dostawca AzAPI Dostawca modułu AzureRM
Tworzenie grupy zasobów
Tworzenie zasobu usługi Foundry
Konfigurowanie wdrożeń
Konfigurowanie projektów -
Konfigurowanie połączenia z wiedzą i narzędziami -
Skonfiguruj hosta funkcji (dla zaawansowanych konfiguracji narzędzi, takich jak konfiguracja standardowa agenta) -

Narzędzie Terraform umożliwia definiowanie, wyświetlanie wersji zapoznawczej i wdrażanie infrastruktury chmury. Za pomocą narzędzia Terraform tworzysz pliki konfiguracji przy użyciu składni HCL. Składnia listy HCL umożliwia określenie dostawcy chmury — takiego jak platforma Azure — oraz elementów tworzących infrastrukturę chmury. Po utworzeniu plików konfiguracji utworzysz plan wykonywania, który umożliwia wyświetlenie podglądu zmian infrastruktury przed ich wdrożeniem. Po zweryfikowaniu zmian należy zastosować plan wykonywania w celu wdrożenia infrastruktury.

Prerequisites

Konto Azure z aktywną subskrypcją. Jeśli go nie masz, utwórz bezpłatne konto platformy Azure, które obejmuje subskrypcję bezpłatnej wersji próbnej.

Implementowanie podstawowej konfiguracji rozwiązania Foundry przy użyciu kodu narzędzia Terraform

  1. Utwórz katalog, w którym chcesz przetestować i uruchomić przykładowy kod programu Terraform i utworzyć go jako bieżący katalog.

  2. Utwórz plik o nazwie providers.tf i wstaw następujący kod.

    # Setup providers
    provider "azapi" {
      subscription_id = var.subscription_id
    }
    
  3. Utwórz plik o nazwie main.tf i wstaw następujący kod.

    ## Create a random string
    ## 
    resource "random_string" "unique" {
      length      = 5
      min_numeric = 5
      numeric     = true
      special     = false
      lower       = true
      upper       = false
    }
    
    ## Create a resource group for the resources to be stored in
    ##
    resource "azapi_resource" "rg" {
      type      = "Microsoft.Resources/resourceGroups@2021-04-01"
      name      = "rg-aifoundry-${random_string.unique.result}"
      location  = var.location
    }
    
    ########## Create AI Foundry resource
    ##########
    
    ## Create the AI Foundry resource
    ##
    resource "azapi_resource" "ai_foundry" {
      type                      = "Microsoft.CognitiveServices/accounts@2025-06-01"
      name                      = "aifoundry${random_string.unique.result}"
      parent_id                 = azapi_resource.rg.id
      location                  = var.location
      schema_validation_enabled = false
    
      body = {
        kind = "AIServices"
        sku = {
          name = "S0"
        }
        identity = {
          type = "SystemAssigned"
        }
    
        properties = {
          # Support both Entra ID and API Key authentication for Cognitive Services account
          disableLocalAuth = false
    
          # Specifies that this is an AI Foundry resourceyes
          allowProjectManagement = true
    
          # Set custom subdomain name for DNS names created for this Foundry resource
          customSubDomainName = "aifoundry${random_string.unique.result}"
        }
      }
    }
    
    ## Create a deployment for OpenAI's GPT-4o in the AI Foundry resource
    ##
    resource "azapi_resource" "aifoundry_deployment_gpt_4o" {
      type      = "Microsoft.CognitiveServices/accounts/deployments@2023-05-01"
      name      = "gpt-4o"
      parent_id = azapi_resource.ai_foundry.id
      depends_on = [
        azapi_resource.ai_foundry
      ]
    
      body = {
        sku = {
          name     = "GlobalStandard"
          capacity = 1
        }
        properties = {
          model = {
            format  = "OpenAI"
            name    = "gpt-4o"
            version = "2024-11-20"
          }
        }
      }
    }
    
    ## Create AI Foundry project
    ##
    resource "azapi_resource" "ai_foundry_project" {
      type                      = "Microsoft.CognitiveServices/accounts/projects@2025-06-01"
      name                      = "project${random_string.unique.result}"
      parent_id                 = azapi_resource.ai_foundry.id
      location                  = var.location
      schema_validation_enabled = false
    
      body = {
        sku = {
          name = "S0"
        }
        identity = {
          type = "SystemAssigned"
        }
    
        properties = {
          displayName = "project"
          description = "My first project"
        }
      }
    }
    
  4. Utwórz plik o nazwie variables.tf i wstaw następujący kod.

    variable "location" {
      description = "The name of the location to provision the resources to"
      type        = string
    }
    
    variable "subscription_id" {
      type = string
    }
    

Inicjowanie narzędzia Terraform

Uruchom terraform init, aby zainicjalizować wdrożenie Terraform. Polecenie to pobiera dostawcę Azure wymaganego do zarządzania zasobami Azure.

terraform init -upgrade

Kluczowe punkty:

  • Parametr -upgrade uaktualnia niezbędne wtyczki dostawcy do najnowszej wersji, która jest zgodna z ograniczeniami wersji konfiguracji.

Tworzenie planu wykonania programu Terraform

Uruchom terraform plan, aby utworzyć plan realizacji.

terraform plan -out main.tfplan

Kluczowe punkty:

  • Polecenie terraform plan tworzy plan wykonania, ale nie wykonuje go. Zamiast tego, określa, jakie działania są niezbędne do stworzenia konfiguracji określonej w plikach konfiguracyjnych. Ten wzorzec pozwala Ci zweryfikować, czy plan wykonania spełnia Twoje oczekiwania, zanim wprowadzisz jakiekolwiek zmiany do rzeczywistych zasobów.
  • Opcjonalny parametr -out pozwala określić plik wyjściowy dla planu. Użycie parametru -out zapewnia, że plan, który przejrzałeś, zostanie dokładnie zastosowany.

Zastosuj plan wykonawczy Terraform

Uruchom terraform apply, aby zastosować plan wykonawczy do infrastruktury chmury.

terraform apply main.tfplan

Kluczowe punkty:

  • Przykładowe polecenie terraform apply zakłada, że wcześniej uruchomiono polecenie terraform plan -out main.tfplan.
  • Jeśli podałeś inną nazwę pliku dla parametru -out, użyj tej samej nazwy pliku w wywołaniu terraform apply.
  • Jeśli nie użyłeś parametru -out, wywołaj terraform apply bez żadnych parametrów.

Dostosowywanie za pomocą mechanizmów kontroli zabezpieczeń i zgodności

Aby spełnić wymagania dotyczące zabezpieczeń i zgodności, możesz dostosować platformę Foundry przy użyciu konfiguracji zabezpieczeń i używając własnych zasobów pamięci masowej. Na przykład korzystając z usługi Agent, możesz zdecydować się na użycie własnej bazy danych Azure CosmosDB, instancji usługi Azure AI Search oraz konta Azure Storage do przechowywania wątków i komunikatów.

Zapoznaj się z poniższymi repozytoriami, aby zapoznać się z zaawansowanymi przykładami konfiguracji:

Uprzątnij zasoby

Jeśli zasoby utworzone za pomocą narzędzia Terraform nie są już potrzebne, wykonaj następujące czynności:

  1. Uruchom terraform plan oraz określ flagę destroy.

    terraform plan -destroy -out main.destroy.tfplan
    

    Kluczowe punkty:

    • Polecenie terraform plan tworzy plan wykonania, ale nie wykonuje go. Zamiast tego, określa, jakie działania są niezbędne do stworzenia konfiguracji określonej w plikach konfiguracyjnych. Ten wzorzec pozwala Ci zweryfikować, czy plan wykonania spełnia Twoje oczekiwania, zanim wprowadzisz jakiekolwiek zmiany do rzeczywistych zasobów.
    • Opcjonalny parametr -out pozwala określić plik wyjściowy dla planu. Użycie parametru -out zapewnia, że plan, który przejrzałeś, zostanie dokładnie zastosowany.
  2. Uruchom terraform apply, aby wdrożyć plan realizacji.

    terraform apply main.destroy.tfplan
    

Rozwiązywanie problemów z programem Terraform na platformie Azure

Rozwiązywanie typowych problemów podczas korzystania z programu Terraform na platformie Azure.

Dalsze kroki