अंतिम समीक्षा: मई 2026
साधारण Terraform के साथ AZ-400 परीक्षा के AWS संसाधनों को बनाएं — एक समय में एक ब्लॉक, प्रत्येक परीक्षा डोमेन से जुड़ा हुआ। यही कोड OpenTofu पर भी काम करता है।
इस लैब के अंत तक, आप सादे टेराफॉर्म के साथ, एक CI/CD पाइपलाइन के AZ-400 इन्फ्रास्ट्रक्चर पक्ष को प्रोविजन कर चुके होंगे — जिसमें छवियों को प्रकाशित करने के लिए एक Azure कंटेनर रजिस्ट्री, प्रबंधित पहचान और लॉग एनालिटिक्स एकीकरण के साथ एक AKS क्लस्टर तैनाती लक्ष्य के रूप में, पाइपलाइन रहस्यों के लिए एक Key Vault, और AKS की कुबेलेट पहचान के लिए सब कुछ जोड़ने वाले रोल असाइनमेंट शामिल हैं ताकि यह पाइपलाइन YAML में क्रेडेंशियल के बिना छवियों को खींच सके और रहस्यों को पढ़ सके।
स्निपेट्स को एक ही main.tf में डालें, terraform init चलाएँ, फिर terraform apply को चरण-दर-चरण चलाएँ।
>= 1.5 या ओपनटोफू >= 1.6।az login)।AKS यहाँ की प्रमुख लागत है:
चलने पर कुल ~$75/माह। सबसे अधिक परखा गया AZ-400 लागत-विरोधी पैटर्न एक अप्रयुक्त AKS क्लस्टर को चालू छोड़ना है — उपयोग में न होने पर क्लस्टर को नष्ट कर दें या रोक दें।
मानक Azure ओपनर।
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
random = { source = "hashicorp/random", version = "~> 3.6" }
}
}
provider "azurerm" {
features {
key_vault {
purge_soft_delete_on_destroy = true
}
}
}
resource "random_id" "suffix" {
byte_length = 3
}
data "azurerm_client_config" "current" {}
locals {
tags = {
Project = "certlabpro-az-400"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-az-400-rg"
location = "eastus"
tags = local.tags
}ACR वह जगह है जहाँ CI पाइपलाइन कंटेनर छवियों को धकेलती है जिन्हें CD पाइपलाइन खींचती है। AZ-400 इस पुश/पुल सीमा को एक सुरक्षा पैटर्न के रूप में परीक्षण करता है: बिल्ड पाइपलाइन को AcrPush मिलता है, परिनियोजन लक्ष्य को AcrPull मिलता है, और दोनों कभी नहीं मिलेंगे।
हम बेसिक टियर का उपयोग करते हैं — सबसे सस्ता, एकल प्रतिकृति लक्ष्य। प्रीमियम भू-प्रतिकृति और सामग्री ट्रस्ट सुविधा (छवि हस्ताक्षर) जोड़ता है; दोनों AZ-400 परीक्षा के विषय हैं लेकिन लैब के लिए लागत-निषेधात्मक हैं।
resource "azurerm_container_registry" "main" {
name = "acrcertlabpro${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "Basic"
admin_enabled = false # admin user disabled — Entra-only access
tags = local.tags
}AKS कंटेनर वर्कलोड के लिए AZ-400 की पसंदीदा परिनियोजन लक्ष्य है। हम एक सिस्टम-असाइन की गई प्रबंधित पहचान (आधुनिक डिफ़ॉल्ट; सेवा-प्रिंसिपल प्रमाणीकरण अब काम नहीं करेगा), एक छोटा सिस्टम नोडपूल, और azure_policy_enabled = true (क्लस्टर-स्तर नीति प्रवर्तन के लिए Azure Policy ऐड-ऑन के माध्यम से AZ-400 अनुपालन लागू करें उत्तर) का उपयोग करते हैं।
लॉग एनालिटिक्स वर्कस्पेस + OMS एजेंट एकीकरण क्लस्टर-स्तर अवलोकन क्षमता के लिए AZ-400 का इंस्ट्रूमेंटेशन लागू करें उत्तर है — हर पॉड लॉग, हर नोड मेट्रिक, हर Kubernetes ऑडिट इवेंट KQL क्वेरींग के लिए लॉग एनालिटिक्स में आता है।
resource "azurerm_log_analytics_workspace" "main" {
name = "log-az400"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "PerGB2018"
retention_in_days = 30
tags = local.tags
}
resource "azurerm_kubernetes_cluster" "main" {
name = "aks-az400"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
dns_prefix = "azaks${random_id.suffix.hex}"
default_node_pool {
name = "system"
node_count = 1
vm_size = "Standard_D2s_v3"
}
identity {
type = "SystemAssigned"
}
oms_agent {
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
}
azure_policy_enabled = true
tags = local.tags
}
# Grant the AKS kubelet identity AcrPull on the registry from Step 2.
# This is the AZ-400 password-less image-pull pattern.
resource "azurerm_role_assignment" "aks_acr_pull" {
scope = azurerm_container_registry.main.id
role_definition_name = "AcrPull"
principal_id = azurerm_kubernetes_cluster.main.kubelet_identity[0].object_id
}पाइपलाइन रहस्य — API कुंजियाँ, परिनियोजन क्रेडेंशियल, तृतीय-पक्ष टोकन — कभी भी पाइपलाइन YAML में नहीं होने चाहिए। AZ-400 का अनुपालन के लिए सुरक्षा लागू करें और कोड आधारों को मान्य करें डोमेन इस पाइपलाइन-कार्य में Key-Vault-संदर्भ पैटर्न का परीक्षण करता है: पाइपलाइनें रनटाइम पर Key Vault से नाम से रहस्यों को संदर्भित करती हैं।
हम AKS कुबेलेट पहचान को Key Vault Secrets User प्रदान करते हैं ताकि परिनियोजित पॉड Secrets Store CSI ड्राइवर (Key Vault-समर्थित रहस्यों के लिए क्लस्टर-इन माउंट तंत्र) के माध्यम से रहस्य भी पढ़ सकें। भूमिका के साथ, हर पॉड जिसे डेटाबेस पासवर्ड की आवश्यकता होती है, उसे CSI ड्राइवर के माध्यम से पढ़ता है, न कि छवि में बेक किए गए env var से।
resource "azurerm_key_vault" "main" {
name = "kv-az400-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
tenant_id = data.azurerm_client_config.current.tenant_id
sku_name = "standard"
enable_rbac_authorization = true
soft_delete_retention_days = 7
tags = local.tags
}
resource "azurerm_role_assignment" "kv_admin_self" {
scope = azurerm_key_vault.main.id
role_definition_name = "Key Vault Administrator"
principal_id = data.azurerm_client_config.current.object_id
}
resource "azurerm_role_assignment" "aks_kv_reader" {
scope = azurerm_key_vault.main.id
role_definition_name = "Key Vault Secrets User"
principal_id = azurerm_kubernetes_cluster.main.kubelet_identity[0].object_id
}लॉग एनालिटिक्स क्लस्टर-स्तर के संकेतों (नोड मेट्रिक्स, पॉड लॉग) को संभालता है; ऐप इनसाइट्स एप्लिकेशन-स्तर (अनुरोध ट्रेसिंग, अपवाद टेलीमेट्री, निर्भरता ट्रैकिंग, वितरित ट्रेस) को संभालता है। AZ-400 इंस्ट्रूमेंटेशन लागू करें दोनों परतों का परीक्षण करता है — परीक्षा आपसे अपेक्षा करती है कि आप उन्हें एक जोड़ी के रूप में जोड़ें, जिसमें ऐप इनसाइट्स स्टेप 3 से लॉग एनालिटिक्स वर्कस्पेस का उपयोग करके वर्कस्पेस-आधारित मोड के रूप में हो।
इस अंतिम भाग के साथ, AZ-400 CI/CD-लक्ष्य आकार पूरा हो गया है: ACR बिल्ड छवियों को प्राप्त करता है, AKS उन्हें परिनियोजित करता है, Key Vault रहस्य प्रदान करता है, लॉग एनालिटिक्स + ऐप इनसाइट्स परिणाम का निरीक्षण करते हैं। पाइपलाइन YAML (Azure DevOps या GitHub Actions) यह सब संचालित करता है — यह स्रोत रिपो में रहता है, टेराफॉर्म में नहीं।
resource "azurerm_application_insights" "main" {
name = "appi-az400"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
workspace_id = azurerm_log_analytics_workspace.main.id
application_type = "web"
tags = local.tags
}terraform destroy सब कुछ नष्ट कर देता है। AKS सिस्टम नोड के लिए $70/माह का बिल देता है — इसे तुरंत नष्ट कर दें। ACR बेसिक $5/माह है। लॉग एनालिटिक्स वर्कस्पेस उपभोक्ताओं के नष्ट होने के बाद भी प्रतिधारण अवधि (यहां 30 दिन) के लिए डेटा रखता है; वर्कस्पेस स्वयं साफ-सुथरा नष्ट हो जाता है।
AZ-400 Azure DevOps Services और GitHub-ऑन-Azure सतहों को कवर करता है जो azurerm प्रदाता में नहीं रहते हैं — Azure DevOps संगठन, परियोजनाएं, रिपो, पाइपलाइन, एजेंट पूल, वातावरण, वेरिएबल समूह, सेवा कनेक्शन (सभी अलग azuredevops प्रदाता में), Azure DevOps के लिए GitHub Advanced Security, और Application Insights Live Metrics + स्मार्ट डिटेक्शन नियम।
हम परिनियोजन-लक्ष्य बुनियादी ढांचे पर टिके रहते हैं क्योंकि यह वह सब्सट्रेट है जिस पर AZ-400 पाइपलाइन वास्तव में परिनियोजित होती हैं। एक बार ACR + AKS + Key Vault + अवलोकन क्षमता स्थापित हो जाने के बाद, पाइपलाइन YAML (आपकी स्रोत रिपो में, टेराफॉर्म में नहीं) मानक Azure CLI कार्यों के माध्यम से बिल्ड-पुश-परिनियोजन कार्य करता है।
Azure DevOps Services + GitHub Actions पैटर्न के कवरेज के लिए, इस प्रमाणपत्र पृष्ठ के ब्राउज़, मार्गदर्शिका, और Editorial अनुभाग देखें।