Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этой статье вы используете Terraform для управления ресурсом Azure AI Foundry . Вы узнаете, как использовать Terraform для управления конфигурациями управления Ai Foundry, включая проекты, развертывания и подключения.
Вы можете использовать поставщик Terraform AzAPI или поставщик AzureRM для управления ресурсами Azure AI Foundry. Хотя поставщик AzAPI позволяет получить доступ ко всем конфигурациям плоскости управления Foundry, включая предварительные версии функций, вариант AzureRM ограничен основными возможностями управления:
| Действие | Поставщик AzAPI | Поставщик AzureRM |
|---|---|---|
| Создайте группу ресурсов | ✅ | ✅ |
| Создайте ресурс AI Foundry | ✅ | ✅ |
| Настройка развертываний | ✅ | ✅ |
| Настройка проектов | ✅ | - |
| Конфигурирование подключения к знаниям и инструментам | ✅ | - |
| Настройка узла функций (для расширенных конфигураций инструментов, таких как стандартная настройка агента) | ✅ | - |
Terraform позволяет определять, просматривать и развертывать облачную инфраструктуру. Используя Terraform, вы создаёте файлы конфигурации, применяя синтаксис HCL. Синтаксис HCL позволяет указать поставщика облачных служб, таких как Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации вы создаете план выполнения, который позволяет предварительно просмотреть изменения в инфраструктуре до их внедрения. После того как вы проверите изменения, примените план выполнения для развертывания инфраструктуры.
Prerequisites
Учетная запись Azure с активной подпиской. Если у вас его нет, создайте бесплатную учетную запись Azure, которая включает бесплатную пробную подписку.
Реализация базовой конфигурации Ai Foundry с помощью кода Terraform
Создайте каталог для тестирования и выполнения примера кода Terraform и сделайте его текущим каталогом.
Создайте файл с именем
providers.tfи вставьте приведенный ниже код.# Setup providers provider "azapi" { subscription_id = var.subscription_id }Создайте файл с именем
main.tfи вставьте приведенный ниже код.## 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" } } }Создайте файл с именем
variables.tfи вставьте приведенный ниже код.variable "location" { description = "The name of the location to provision the resources to" type = string } variable "subscription_id" { type = string }
Инициализируйте Terraform
Запустите terraform init, чтобы инициализировать развертывание Terraform. Эта команда загружает поставщика Azure, необходимого для управления вашими ресурсами в Azure.
terraform init -upgrade
Основные моменты:
- Параметр
-upgradeобновляет необходимые плагины провайдера до самой последней версии, которая соответствует ограничениям версии конфигурации.
Создайте план запуска Terraform
Запустите команду terraform plan, чтобы создать план выполнения.
terraform plan -out main.tfplan
Основные моменты:
- Команда
terraform planсоздает план выполнения, но не выполняет его. Вместо этого он определяет, какие действия необходимы для создания конфигурации, указанной в ваших конфигурационных файлах. Данный шаблон позволяет вам убедиться, что план выполнения соответствует вашим ожиданиям, прежде чем вносить какие-либо изменения в реальные ресурсы. - Необязательный параметр
-outпозволяет указать выходной файл для плана. Использование параметра-outобеспечивает, что план, который вы просмотрели, будет применен точно в таком виде.
Применение плана выполнения Terraform
Выполните команду terraform apply, чтобы применить план выполнения к вашей облачной инфраструктуре.
terraform apply main.tfplan
Основные моменты:
- Пример команды
terraform applyпредполагает, что вы ранее выполнили командуterraform plan -out main.tfplan. - Если вы указали другое имя файла для параметра
-out, используйте то же имя файла при вызовеterraform apply. - Если вы не использовали параметр
-out, вызовитеterraform applyбез параметров.
Настройте с использованием контролей безопасности и соответствия требованиям
Для удовлетворения требований к безопасности и соблюдению нормативных требований можно настроить AI Foundry с конфигурациями безопасности и использовать собственные ресурсы хранилища. Например, при использовании сервиса Agent вы можете принести собственную базу данных Azure CosmosDB, экземпляр Azure AI Search и учетную запись Azure Storage для хранения потоков и сообщений.
Дополнительные примеры установки см. в следующих репозиториях:
- Репозиторий azure AI Foundry Samples содержит примеры конфигураций Terraform для наиболее распространенных конфигураций корпоративной безопасности.
- Модуль Terraform Azure Verified Module (Cognitive Services account) — это универсальный модуль для управления типом ресурсов Azure, используемым Azure AI Foundry, Azure OpenAI, речью Azure, языком Azure.
- Проверенный модуль шаблонов Terraform для Azure (AI Foundry) — это эталонная имплементация для Azure AI Foundry.
- Проверенный модуль шаблонов Azure для Terraform (Целевая зона ИИ и машинного обучения Azure) предоставляет справочную информацию о наборе ресурсов, обычно создаваемых в сочетании с Foundry для комплексного примера.
Очистите ресурсы
Если вам больше не нужны ресурсы, созданные через Terraform, выполните следующие действия:
Запустите команду terraform plan и укажите флаг
destroy.terraform plan -destroy -out main.destroy.tfplanОсновные моменты:
- Команда
terraform planсоздает план выполнения, но не выполняет его. Вместо этого он определяет, какие действия необходимы для создания конфигурации, указанной в ваших конфигурационных файлах. Данный шаблон позволяет вам убедиться, что план выполнения соответствует вашим ожиданиям, прежде чем вносить какие-либо изменения в реальные ресурсы. - Необязательный параметр
-outпозволяет указать выходной файл для плана. Использование параметра-outобеспечивает, что план, который вы просмотрели, будет применен точно в таком виде.
- Команда
Чтобы применить план выполнения, запустите команду terraform apply.
terraform apply main.destroy.tfplan
Устранение неполадок с Terraform в Azure
Устранение распространенных проблем при использовании Terraform в Azure.