Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Применяется только к:Портал Foundry (классический). Эта статья недоступна для нового портала Foundry.
Дополнительные сведения о новом портале.
Примечание
Содержание в новой документации Microsoft Foundry может открываться по ссылкам в этой статье вместо документации Foundry (классической версии), которую вы просматриваете сейчас.
Важно
Эта статья предоставляет устаревшую поддержку для проектов на основе концентраторов. Он не будет работать для проектов Foundry. Узнайте , какой у меня тип проекта?
В этой статье вы используете Terraform для создания Microsoft Foundry концентратора, проекта и подключения средств Foundry. Центр — это центральное место для специалистов по обработке и анализу данных и разработчиков для совместной работы над проектами машинного обучения. Она предоставляет общее, совместное пространство для создания, обучения и развертывания моделей машинного обучения. Центр интегрирован с Машинное обучение Azure и другими службами Azure, что делает его комплексным решением для задач машинного обучения. Центр также позволяет управлять развертываниями ИИ и отслеживать их выполнение.
Terraform включает определение, предварительную версию и развертывание облачной инфраструктуры. С помощью Terraform вы создаете файлы конфигурации с помощью синтаксиса HCL. Синтаксис HCL позволяет указать поставщика облачных служб, например Azure, и элементы, составляющие облачную инфраструктуру. После создания файлов конфигурации вы создадите план выполнения , который позволяет предварительно просмотреть изменения инфраструктуры перед развертыванием. После проверки изменений примените план выполнения для развертывания инфраструктуры.
- Создание группы ресурсов
- Настройка учетной записи хранения
- Создание хранилища ключей
- Настройка средств Foundry
- Создание узла литья
- Разработка проекта на основе концентратора
- Установите подключение к средствам Foundry
Необходимые условия
-
Учетная запись Azure с активной подпиской. Если у вас нет, создайте учетную запись free Azure, которая включает бесплатную пробную подписку.
Azure role: Владелец или участник подписки Azure. Эта роль необходима для создания групп ресурсов, учетных записей хранения, хранилищ ключей и ресурсов Foundry.
Создание файлов конфигурации Terraform
Вы создадите четыре файла Terraform для настройки поставщика Azure, определения ресурсов Foundry, объявления входных переменных и выходных результатов развертывания.
Примечание
Пример кода для этой статьи находится в репозитории Azure Terraform GitHub. Вы можете просмотреть файл журнала, содержащий результаты test из текущих и предыдущих версий Terraform. Возможно, потребуется обновить версии поставщика ресурсов, используемые в шаблоне, чтобы использовать последние доступные версии.
Дополнительные статьи и примеры кода, показывающие, как использовать Terraform для управления ресурсами в Azure.
Создайте каталог для тестирования и запуска примера кода Terraform. Сделайте его текущим каталогом.
Создайте файл с именем
providers.tfи вставьте следующий код.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 } } }Этот файл настраивает поставщика Azure Terraform, указав подписку Azure и необходимые версии для поставщика. Он устанавливает подключение между Terraform и подпиской Azure.
Reference:Terraform Azure Provider
Создайте файл с именем
main.tfи вставьте следующий код.# 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 } }Этот файл определяет основные ресурсы Foundry: группу ресурсов, учетную запись хранения, хранилище ключей, центр Foundry, проект и подключение средств Foundry. Эти ресурсы формируют основу для среды разработки ИИ.
Справочник:azurerm_machine_learning_workspace, azurerm_storage_account, azurerm_key_vault
Создайте файл с именем
variables.tfи вставьте следующий код.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." }Этот файл объявляет входные переменные для конфигурации Terraform (например, расположение, среда и именование ресурсов). Эти переменные позволяют настраивать развертывание без редактирования определений основных ресурсов.
Справочник:Переменные ввода Terraform
Создайте файл с именем
outputs.tfи вставьте следующий код.output "resource_group_name" { value = azurerm_resource_group.example.id } output "workspace_name" { value = azurerm_ai_foundry.example.name }Этот файл определяет выходные значения, отображающие результаты развертывания после завершения применения Terraform. Выходные данные включают имя группы ресурсов, имя рабочей области и другие идентификаторы ресурсов, которые вам понадобятся для ссылки на ресурсы Foundry и управления ими.
Reference:Terraform Output Values
Проверка подлинности в Azure
Запустите az login без параметров и следуйте инструкциям для входа в Azure.
az loginКлючевые моменты:
- После успешного входа
az loginотображает список подписок Azure, связанных с учетной записью Microsoft, включая подписку по умолчанию.
- После успешного входа
Чтобы подтвердить текущую подписку Azure, выполните команду az account show.
az account show
Инициализация 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без параметров.
Проверка результатов
Получите имя группы ресурсов Azure.
resource_group_name=$(terraform output -raw resource_group_name)Получите имя рабочей области.
workspace_name=$(terraform output -raw workspace_name)Запустите az ml workspace show , чтобы отобразить сведения о новой рабочей области.
az ml workspace show --resource-group $resource_group_name \ --name $workspace_name
Очистка ресурсов
Если ресурсы, созданные с помощью 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.