Последняя проверка: май 2026 г.
Разверните сервисы AWS для экзамена AI-900 с помощью чистого Terraform: пошаговое руководство с привязкой каждого блока к разделам экзамена. Код также совместим с OpenTofu.
К концу этой лабораторной работы вы подготовите с помощью обычного Terraform базовую поверхность Azure AI — группу ресурсов, учетную запись мультисервисов Azure AI Services (один ключ, все API ИИ: Компьютерное зрение, Язык, Речь, Принятие решений), учетную запись хранения для входных данных, которые они будут потреблять, и параметр диагностики, который фиксирует каждый вызов API ИИ в Log Analytics для проверки управления.
Каждый ресурс — это обычный Terraform. Поместите фрагменты кода в один файл main.tf, запустите terraform init, а затем terraform apply шаг за шагом.
>= 1.5 или OpenTofu >= 1.6.az login).terraform apply завершится ошибкой ответственного ИИ при создании учетной записи ИИ, примите условия через портал Azure и повторите выполнение.В основном бесплатно или очень дешево:
Вся инфраструктура простаивает менее чем за $1 в месяц. Вызов API ИИ стоит реальных денег; уничтожьте по завершении.
Стандартное начало для Azure: закрепляем azurerm ~> 4.0, пустой блок features {} и random_id для глобально уникального именования ресурсов (имена учетных записей AI Services должны быть уникальными во всем Azure для их DNS-имени).
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "~> 4.0"
}
random = {
source = "hashicorp/random"
version = "~> 3.6"
}
}
}
provider "azurerm" {
features {}
}
resource "random_id" "suffix" {
byte_length = 2
}
locals {
tags = {
Project = "certlabpro-ai-900"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-ai-900-rg"
location = "eastus"
tags = local.tags
}Почти каждый сценарий Azure AI читает входные данные из Azure Storage — изображения для Компьютерного зрения, аудиоклипы для Речи, текстовые файлы для Языка, обучающие данные для Пользовательских моделей. Мы заранее подготавливаем учетную запись хранения с безопасными настройками по умолчанию (только HTTPS, TLS 1.2, отключен публичный сетевой доступ, нет публичного доступа к BLOB-объектам).
Домен AI-900 Основы машинного обучения в Azure напрямую проверяет эту концепцию Azure Storage как субстрата данных: всякий раз, когда на экзамене спрашивают, где хранятся обучающие данные ИИ, ответ — Azure Storage (или конкретно Azure Blob Storage).
resource "azurerm_storage_account" "ai_data" {
name = "ai900data${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
account_tier = "Standard"
account_replication_type = "LRS"
account_kind = "StorageV2"
https_traffic_only_enabled = true
min_tls_version = "TLS1_2"
public_network_access_enabled = false
allow_nested_items_to_be_public = false
tags = local.tags
}Azure AI Services (переименованная группа Cognitive Services) предоставляет один ключ, одну конечную точку и доступ ко всему спектру API ИИ — Компьютерное зрение, Язык, Речь, Переводчик, Интеллектуальное распознавание документов, Безопасность содержимого и многое другое. Единая мультисервисная учетная запись — это вопрос антишаблона затрат AI-900: она дороже за вызов, чем выделенные учетные записи для отдельных служб (Speech, Vision, Language каждая имеет свой бесплатный уровень F0), но ее гораздо проще управлять. AI-900 проверяет обе формы — экзамен спрашивает, когда вы будете использовать ту или иную.
Мы устанавливаем kind = "CognitiveServices" для мультисервисной учетной записи и sku_name = "S0" для стандартного уровня. custom_subdomain_name требуется для интеграции с виртуальной сетью (домен AI-900 Ответственный ИИ проверяет это как предварительное условие для частных конечных точек). local_auth_enabled = true поддерживает работу потока API-ключей; false принудительно включает только аутентификацию Entra ID.
resource "azurerm_cognitive_account" "ai" {
name = "certlabpro-ai-900-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
kind = "CognitiveServices"
sku_name = "S0"
custom_subdomain_name = "certlabpro-ai-900-${random_id.suffix.hex}"
local_auth_enabled = true
identity {
type = "SystemAssigned"
}
tags = local.tags
}Ответственный ИИ является одним из столпов AI-900 (один из пяти доменов экзамена) — и наиболее конкретной практикой Ответственного ИИ, которую вы можете продемонстрировать с помощью инфраструктуры, является аудит журналов. Мы создаем рабочую область Log Analytics в качестве назначения диагностических журналов; на шаге 5 мы настраиваем параметры диагностики учетной записи ИИ для отправки всего сюда.
Log Analytics — это центральная служба наблюдаемости Azure — Azure Monitor отправляет сюда метрики, Application Insights отправляет сюда телеметрию приложений, Sentinel читает отсюда для SIEM. Подготовка ее в качестве назначения аудита для лаборатории ИИ также является строительным блоком, который, как предполагается, будет использоваться в любом другом сертификате Azure.
resource "azurerm_log_analytics_workspace" "main" {
name = "certlabpro-ai-900-logs"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "PerGB2018"
retention_in_days = 30
tags = local.tags
}Параметры диагностики — это универсальный примитив наблюдаемости Azure: каждый ресурс Azure может передавать свои категоризированные журналы и метрики в рабочую область Log Analytics, Event Hub или учетную запись хранения. Мы включаем категории журналов Audit и RequestResponse для учетной записи ИИ — Audit фиксирует что было вызвано, RequestResponse фиксирует фактические тела запросов и ответов (полезно для реагирования на инциденты, страшно, если у вас есть PII в подсказках; AI-900 Ответственный ИИ проверяет обе стороны этого компромисса).
С этим последним компонентом каждый вызов API ИИ попадает в рабочую область из Шага 4, доступную для запросов через KQL. Это AI-900, завершающий цикл ответственного ИИ: не просто "у нас есть фильтр контента", а "у нас есть доказательства каждого запроса, который видел ИИ".
resource "azurerm_monitor_diagnostic_setting" "ai" {
name = "certlabpro-ai-900-diag"
target_resource_id = azurerm_cognitive_account.ai.id
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
enabled_log {
category = "Audit"
}
enabled_log {
category = "RequestResponse"
}
metric {
category = "AllMetrics"
enabled = true
}
}Стандартная команда terraform destroy удаляет все ресурсы, созданные в этой лабораторной работе. Два замечания:
random_id обычно помогает избежать этого.AI-900 охватывает поверхности Azure AI, которые не помещаются в эту лабораторию — Azure OpenAI Service (рассматривается в AI-102), Azure Machine Learning Studio + рабочие области (DP-100), Bot Service, пользовательские модели Компьютерного зрения, обучение портала Custom Vision, пользовательские QnA и понимание разговорного языка в Language Studio, пользовательские модели Интеллектуального распознавания документов, Azure AI Search, пользовательский голос / оценка произношения для Речи, а также панель мониторинга ответственного ИИ для интерпретируемости ML.
Мы придерживаемся примитивов мультисервисная учетная запись + хранилище + аудит журналов, потому что они являются основой, к которой прикрепляются все более продвинутые шаблоны Azure AI. Как только вы поймете, как мультисервисная учетная запись предоставляет полный набор API под одним ключом, углубленное изучение каждой службы станет проще.
Для концептуального обзора каждой службы см. разделы Просмотр и Editorial на этой странице сертификата.