Última revisión: mayo de 2026
Crea los servicios de AWS del examen AI-900 con Terraform puro: bloque a bloque, cada uno vinculado a un dominio del examen. El mismo código funciona en OpenTofu.
Al final de este laboratorio, habrás aprovisionado, con Terraform simple, la superficie fundamental de Azure AI: un Grupo de recursos, una cuenta de Azure AI Services multi-servicio (una clave, todas las API de IA: Visión Artificial, Lenguaje, Voz, Decisión), una Cuenta de almacenamiento para las entradas que consumirán, y una Configuración de diagnóstico que captura cada llamada a la API de IA en Log Analytics para la revisión de gobernanza.
Cada recurso es Terraform simple. Coloca los fragmentos en un único main.tf, ejecuta terraform init, luego terraform apply paso a paso.
>= 1.5 o OpenTofu >= 1.6.az login).terraform apply falla en la cuenta de IA con un error de IA Responsable, acepta los términos a través del portal de Azure y vuelve a ejecutar.Mayormente gratis o muy barato:
Todo el stack en inactividad cuesta < $1/mes. Llamar a las API de IA cuesta dinero real; destrúyelo cuando hayas terminado.
Apertura estándar de Azure: fijar azurerm ~> 4.0, el bloque features {} vacío y un random_id para nombres de recursos globalmente únicos (las cuentas de AI Services deben ser únicas en todo Azure para su nombre 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
}Casi todos los escenarios de Azure AI leen entradas de Azure Storage — imágenes para Visión Artificial, clips de audio para Voz, archivos de texto para Lenguaje, datos de entrenamiento para modelos personalizados. Aprovisionamos la cuenta de almacenamiento con configuraciones predeterminadas seguras (solo HTTPS, TLS 1.2, acceso a la red pública deshabilitado, sin acceso público a blobs).
El dominio de IA-900 Fundamentos de Machine Learning en Azure prueba directamente este concepto de Azure Storage como sustrato de datos: cada vez que el examen pregunta dónde residen los datos de entrenamiento de IA, Azure Storage (o específicamente Azure Blob Storage) es la respuesta.
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 (el paraguas de Cognitive Services renombrado) te ofrece una clave, un endpoint y acceso a la gama completa de API de IA — Visión Artificial, Lenguaje, Voz, Traductor, Inteligencia de Documentos, Seguridad de Contenido y más. La cuenta multi-servicio única es la pregunta anti-patrón de costo del AI-900: es más cara por llamada que las cuentas dedicadas de servicio único (Voz, Visión, Lenguaje tienen cada una su propia capa F0 gratuita), pero es mucho más sencilla de gestionar. El AI-900 prueba ambas formas; el examen pregunta cuándo optarías por una u otra.
Establecemos kind = "CognitiveServices" para la cuenta multi-servicio y sku_name = "S0" para la capa estándar. El custom_subdomain_name es necesario para la integración de VNet (el dominio IA Responsable del AI-900 prueba esto como requisito previo para los puntos de conexión privados). local_auth_enabled = true mantiene el flujo de la clave de API funcionando; false forzaría la autenticación solo con 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
}La IA Responsable es un pilar del AI-900 (uno de los cinco dominios del examen) — y la práctica IA Responsable más concreta que puedes demostrar con infraestructura es el registro de auditoría. Creamos un espacio de trabajo de Log Analytics como destino de los registros de diagnóstico; en el Paso 5, conectaremos la configuración de diagnóstico de la cuenta de IA para enviar todo aquí.
Log Analytics es el servicio central de observabilidad de Azure — Azure Monitor envía métricas aquí, Application Insights envía telemetría de aplicaciones aquí, Sentinel lee de aquí para SIEM. Aprovisionarlo como destino de auditoría del laboratorio de IA también sirve como un bloque de construcción que cualquier otra certificación de Azure asume que tendrás disponible.
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
}La Configuración de diagnóstico es la primitiva de observabilidad universal de Azure: cada recurso de Azure puede transmitir sus registros y métricas categorizados a un espacio de trabajo de Log Analytics, un Event Hub o una Cuenta de almacenamiento. Activamos las categorías de registro Audit y RequestResponse de la cuenta de IA — Audit captura qué se llamó, RequestResponse captura los cuerpos reales de la solicitud y la respuesta (útil para la respuesta a incidentes, aterrador si tienes PII en los prompts; el AI-900 IA Responsable prueba ambas mitades de esa compensación).
Con esta pieza final en su lugar, cada llamada a la API de IA llega al espacio de trabajo del Paso 4, consultable a través de KQL. Así es como el AI-900 cierra el ciclo de la IA Responsable: no solo "tenemos un filtro de contenido", sino "tenemos pruebas de cada solicitud que la IA vio".
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
}
}Un terraform destroy estándar elimina todo en este laboratorio. Dos notas:
random_id generalmente lo evita.El AI-900 cubre superficies de Azure AI que este laboratorio no puede abarcar — Azure OpenAI Service (cubierto en AI-102), Azure Machine Learning Studio + espacios de trabajo (DP-100), Bot Service, modelos personalizados de Visión Artificial, entrenamiento en el portal de Custom Vision, QnA personalizado de Language Studio y comprensión del lenguaje conversacional, modelos personalizados de Document Intelligence, Azure AI Search, voz personalizada / evaluación de pronunciación de Speech, y el panel de IA Responsable para la interpretabilidad de ML.
Nos ceñimos a las primitivas de cuenta multi-servicio + almacenamiento + registro de auditoría porque son el sustrato al que se adhieren todos los patrones de Azure AI más avanzados. Una vez que entiendas cómo la cuenta multi-servicio expone la gama completa de API bajo una misma clave, las inmersiones profundas por servicio son más fáciles de navegar.
Para una cobertura conceptual servicio por servicio, consulta las secciones Buscar y Editorial de esta página de certificación.