Dernière révision : mai 2026
Configurez les services AWS figurant à l'examen AI-900 avec Terraform simple — un bloc à la fois, chacun étant lié à un domaine de l'examen. Le même code fonctionne sur OpenTofu.
À la fin de ce laboratoire, vous aurez provisionné, avec du Terraform standard, la surface fondamentale d'Azure AI — un groupe de ressources, un compte Azure AI Services multi-service (une seule clé, toutes les API AI : Computer Vision, Langage, Parole, Décision), un compte de stockage pour les entrées qu'ils consommeront, et un paramètre de diagnostic qui capture chaque appel d'API AI vers Log Analytics pour examen de gouvernance.
Chaque ressource est du Terraform standard. Déposez les extraits dans un unique main.tf, exécutez terraform init, puis terraform apply étape par étape.
>= 1.5 ou OpenTofu >= 1.6.az login).terraform apply échoue sur le compte AI avec une erreur d'IA responsable, acceptez les conditions via le portail Azure et réexécutez.Principalement gratuit ou très abordable :
L'ensemble de la pile est inactif à moins de 1 $/mois. L'appel des API AI coûte de l'argent réel ; détruisez une fois terminé.
Ouverture Azure standard : épingler azurerm ~> 4.0, le bloc features {} vide, et un random_id pour un nommage de ressource globalement unique (les comptes AI Services doivent être uniques dans tout Azure pour leur nom 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
}Presque tous les scénarios Azure AI lisent les entrées depuis Azure Storage — des images pour Computer Vision, des clips audio pour Speech, des fichiers texte pour Language, des données d'entraînement pour les modèles personnalisés. Nous provisionnons le compte de stockage à l'avance avec des valeurs par défaut sécurisées (HTTPS uniquement, TLS 1.2, accès réseau public désactivé, pas d'accès blob public).
Le domaine AI-900 Principes fondamentaux de l'apprentissage automatique sur Azure teste directement ce concept d'Azure Storage comme substrat de données : chaque fois que l'examen demande où résident les données d'entraînement de l'IA, Azure Storage (ou plus spécifiquement Azure Blob Storage) est la réponse.
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 (l'ancienne marque Cognitive Services) vous donne une seule clé, un seul point de terminaison et l'accès à la suite complète des API AI — Computer Vision, Langage, Parole, Traducteur, Document Intelligence, Content Safety, et plus encore. Le compte multi-service unique est la question de l'anti-modèle de coût de l'AI-900 : il est plus cher par appel que les comptes dédiés à un seul service (Speech, Vision, Langage ont chacun leur propre niveau F0 gratuit), mais il est beaucoup plus simple à gérer. L'AI-900 teste les deux formes — l'examen demande quand vous choisiriez l'une ou l'autre.
Nous définissons kind = "CognitiveServices" pour le compte multi-service et sku_name = "S0" pour le niveau standard. Le custom_subdomain_name est requis pour l'intégration VNet (le domaine IA Responsable de l'AI-900 teste cela comme prérequis pour les points de terminaison privés). local_auth_enabled = true maintient le flux de la clé API fonctionnel ; false forcerait l'authentification Entra ID uniquement.
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
}L'IA responsable est un pilier de l'AI-900 (l'un des cinq domaines d'examen) — et la pratique d' IA responsable la plus concrète que vous puissiez démontrer avec l'infrastructure est la journalisation d'audit. Nous créons un espace de travail Log Analytics comme destination des journaux de diagnostic ; à l'étape 5, nous configurons les paramètres de diagnostic du compte AI pour tout y envoyer.
Log Analytics est le service d'observabilité central d'Azure — Azure Monitor y envoie des métriques, Application Insights y envoie la télémétrie des applications, Sentinel y lit pour le SIEM. Le provisionnement de cet espace comme destination d'audit pour le laboratoire d'IA sert également de bloc de construction que toute autre certification Azure suppose que vous aurez à disposition.
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
}Les paramètres de diagnostic sont la primitive d'observabilité universelle d'Azure : chaque ressource Azure peut diffuser ses journaux et métriques catégorisés vers un espace de travail Log Analytics, un Event Hub ou un compte de stockage. Nous activons les catégories de journaux Audit et RequestResponse du compte AI — Audit capture ce qui a été appelé, RequestResponse capture les corps réels des requêtes et réponses (utile pour la réponse aux incidents, effrayant si vous avez des informations personnelles identifiables dans les invites ; l'AI-900 IA Responsable teste les deux côtés de ce compromis).
Avec cette dernière pièce en place, chaque appel d'API AI arrive dans l'espace de travail de l'étape 4, interrogeable via KQL. C'est l'AI-900 qui boucle la boucle sur l'IA Responsable : non seulement « nous avons un filtre de contenu », mais « nous avons des preuves de chaque requête que l'IA a vue ».
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 standard supprime tout dans ce laboratoire. Deux remarques :
random_id l'évite généralement.L'AI-900 couvre des surfaces Azure AI que ce laboratoire ne peut pas inclure — Azure OpenAI Service (couvert par l'AI-102), Azure Machine Learning Studio + espaces de travail (DP-100), Bot Service, les modèles personnalisés Computer Vision, la formation via le portail Custom Vision, le QnA personnalisé et la compréhension du langage conversationnel de Language Studio, les modèles personnalisés Document Intelligence, Azure AI Search, la voix personnalisée / l'évaluation de la prononciation de Speech, et le tableau de bord d'IA Responsable pour l'interprétabilité du ML.
Nous nous en tenons aux primitives compte multi-service + stockage + journalisation d'audit car elles sont le substrat auquel tout modèle Azure AI plus avancé s'attache. Une fois que vous comprenez comment le compte multi-service expose la gamme complète d'API sous une seule clé, les explorations approfondies par service sont plus faciles à naviguer.
Pour une couverture conceptuelle service par service, consultez les sections Parcourir et Editorial de cette page de certification.