Última revisão: maio de 2026
Construa os serviços da AWS do exame AI-900 com Terraform puro — um bloco de cada vez, cada um vinculado a um domínio do exame. O mesmo código funciona no OpenTofu.
Ao final deste laboratório, você terá provisionado, com Terraform simples, a superfície fundamental do Azure AI — um Grupo de Recursos, uma conta de serviço múltiplo do Azure AI Services (uma chave, todas as APIs de IA: Visão Computacional, Idioma, Fala, Decisão), uma Conta de Armazenamento para as entradas que serão consumidas, e uma Configuração de Diagnóstico que captura cada chamada da API de IA para o Log Analytics para revisão de governança.
Cada recurso é Terraform puro. Solte os trechos em um único main.tf, execute terraform init, depois terraform apply passo a passo.
>= 1.5 ou OpenTofu >= 1.6.az login).terraform apply falhar na conta de IA com um erro de IA Responsável, aceite os termos através do portal do Azure e execute novamente.Principalmente gratuito ou muito barato:
Todo o stack fica inativo por < $1/mês. Chamar as APIs de IA custa dinheiro real; destrua quando terminar.
Abertura padrão do Azure: fixe azurerm ~> 4.0, o bloco features {} vazio e um random_id para nomes de recursos globalmente únicos (as contas de AI Services devem ser únicas em todo o Azure para seu nome 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
}Quase todo cenário de Azure AI lê entradas do Azure Storage — imagens para Visão Computacional, clipes de áudio para Fala, arquivos de texto para Idioma, dados de treinamento para modelos personalizados. Provisionamos a conta de armazenamento com antecedência com padrões seguros (somente HTTPS, TLS 1.2, acesso à rede pública desabilitado, sem acesso público a blobs).
O domínio AI-900 Fundamentos de Machine Learning no Azure testa diretamente este conceito de Azure Storage como substrato de dados: sempre que o exame perguntar onde vivem os dados de treinamento de IA, Azure Storage (ou especificamente Azure Blob Storage) é a resposta.
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
}O Azure AI Services (o guarda-chuva renomeado de Cognitive Services) oferece uma chave, um endpoint e acesso a toda a gama de APIs de IA — Visão Computacional, Idioma, Fala, Tradutor, Document Intelligence, Content Safety e muito mais. A conta única de múltiplos serviços é a questão do anti-padrão de custo do AI-900: é mais cara por chamada do que contas dedicadas de serviço único (Fala, Visão, Idioma, cada uma tem sua própria camada F0 gratuita), mas é muito mais simples de gerenciar. O AI-900 testa ambas as formas — o exame pergunta quando você optaria por qual.
Definimos kind = "CognitiveServices" para a conta de múltiplos serviços e sku_name = "S0" para a camada padrão. O custom_subdomain_name é necessário para a integração com VNet (o domínio IA Responsável do AI-900 testa isso como pré-requisito para endpoints privados). local_auth_enabled = true mantém o fluxo da chave de API funcionando; false forçaria a autenticação apenas por 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
}A IA Responsável é um pilar do AI-900 (um dos cinco domínios do exame) — e a prática mais concreta de IA Responsável que você pode demonstrar com infraestrutura é o registro de auditoria. Criamos um espaço de trabalho do Log Analytics como destino do log de diagnóstico; na Etapa 5, conectamos as configurações de diagnóstico da conta de IA para enviar tudo para cá.
O Log Analytics é o serviço central de observabilidade do Azure — o Azure Monitor envia métricas para cá, o Application Insights envia telemetria de aplicativos para cá, o Sentinel lê daqui para o SIEM. Provisioná-lo como destino de auditoria do laboratório de IA também serve como um bloco de construção que todos os outros certificados do Azure presumem que você terá por perto.
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
}As Configurações de Diagnóstico são a primitiva de observabilidade universal do Azure: cada recurso do Azure pode transmitir seus logs e métricas categorizados para um espaço de trabalho do Log Analytics, um Event Hub ou uma Conta de Armazenamento. Ativamos as categorias de log de Auditoria e RequestResponse da conta de IA — a Auditoria captura o que foi chamado, o RequestResponse captura os corpos reais da solicitação e da resposta (útil para resposta a incidentes, assustador se você tiver PII em prompts; o AI-900 IA Responsável testa ambas as metades dessa troca).
Com esta peça final no lugar, cada chamada da API de IA chega ao espaço de trabalho da Etapa 4, consultável via KQL. É assim que o AI-900 fecha o ciclo da IA Responsável: não apenas "temos um filtro de conteúdo", mas "temos evidências de cada solicitação que a IA viu".
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
}
}Um terraform destroy padrão derruba tudo neste laboratório. Duas observações:
random_id geralmente a evita.O AI-900 cobre superfícies de Azure AI que este laboratório não pode incluir — Azure OpenAI Service (coberto no AI-102), Azure Machine Learning Studio + workspaces (DP-100), Bot Service, modelos personalizados de Visão Computacional, treinamento de portal Custom Vision, QnA personalizado e compreensão de linguagem conversacional do Language Studio, modelos personalizados do Document Intelligence, Azure AI Search, voz personalizada/avaliação de pronúncia da Fala e o painel de IA Responsável para interpretabilidade de ML.
Nós nos limitamos às primitivas de conta de serviço múltiplo + armazenamento + registro de auditoria porque elas são o substrato ao qual todos os padrões de Azure AI mais avançados se conectam. Uma vez que você entende como a conta de serviço múltiplo expõe a gama completa de APIs sob uma única chave, as análises aprofundadas por serviço são mais fáceis de navegar.
Para cobertura conceitual serviço por serviço, consulte as seções Navegar e Editorial desta página de certificação.