अंतिम समीक्षा: मई 2026
साधारण Terraform के साथ AZ-700 परीक्षा के AWS संसाधनों को बनाएं — एक समय में एक ब्लॉक, प्रत्येक परीक्षा डोमेन से जुड़ा हुआ। यही कोड OpenTofu पर भी काम करता है।
इस लैब के अंत तक आपने सादे Terraform का उपयोग करके AZ-700 संदर्भ नेटवर्क प्रदान किया होगा — एक हब VNet जिसमें एक साझा-सेवा सबनेट है, एक ऐप सबनेट वाला एक स्पोक VNet, दोनों के बीच द्वि-दिशात्मक पीयरिंग, क्रॉस-VNet नाम रिज़ॉल्यूशन के लिए दोनों VNets से जुड़ा एक निजी DNS ज़ोन, और ट्रैफ़िक दृश्यता के लिए लॉग एनालिटिक्स में NSG फ़्लो लॉग।
स्निपेट्स को एक ही main.tf में डालें, terraform init चलाएँ, फिर terraform apply को चरण-दर-चरण चलाएँ।
>= 1.5 या OpenTofu >= 1.6।az login)।ज्यादातर मुफ़्त, एक सावधानी के साथ:
आदर्श स्थिति में $1–2/माह। AZ-700 की लागत के जाल VPN Gateway ($60/माह) और ExpressRoute ($200+/माह) हैं — दोनों को यहाँ छोड़ दिया गया है।
मानक एज़्योर ओपनर।
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
}
}
provider "azurerm" {
features {}
}
locals {
tags = {
Project = "certlabpro-az-700"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-az-700-rg"
location = "eastus"
tags = local.tags
}हब-स्पोक AZ-700 संदर्भ टोपोलॉजी है। हब साझा सेवाओं (फ़ायरवॉल, VPN गेटवे, DNS रिज़ॉल्वर, निगरानी) को केंद्रीकृत करता है और स्पोक उन तक पहुँचने के लिए हब के साथ पीयर करते हैं। हम 10.0.0.0/16 पर एक सबनेट के साथ हब बनाते हैं — एक वास्तविक हब में आपके पास VPN/ExpressRoute गेटवे के लिए एक GatewaySubnet, Azure फ़ायरवॉल के लिए एक AzureFirewallSubnet, और DNS रिज़ॉल्वर इनबाउंड/आउटबाउंड एंडपॉइंट के लिए एक साझा-सेवा सबनेट होगा। लैब का दायरा टोपोलॉजी आकार है; गेटवे सेवाएँ दायरे से बाहर हैं (उच्च लागत)।
resource "azurerm_virtual_network" "hub" {
name = "vnet-hub"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
address_space = ["10.0.0.0/16"]
tags = local.tags
}
resource "azurerm_subnet" "hub_shared" {
name = "shared-services"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.hub.name
address_prefixes = ["10.0.1.0/24"]
}स्पोक 10.1.0.0/16 पर — जानबूझकर हब के साथ अतिव्यापी नहीं। ऐप सबनेट से जुड़ा NSG उत्पादन में प्रवेश को विशिष्ट स्रोत CIDRs तक सीमित करेगा; लैब स्रोत के लिए * का उपयोग करती है ताकि आर्किटेक्चर परीक्षण योग्य हो।
AZ-700 मुख्य नेटवर्किंग इन्फ्रास्ट्रक्चर लागू करें NSG-प्रति-सबनेट बनाम NSG-प्रति-NIC प्रश्न को बार-बार उठाता है। सबनेट-स्तरीय NSGs (यह लैब) सही उत्तर हैं जब प्रश्न कहता है "सबनेट में सभी संसाधनों पर लागू"; NIC-स्तर ओवरराइड है।
resource "azurerm_virtual_network" "spoke" {
name = "vnet-spoke"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
address_space = ["10.1.0.0/16"]
tags = local.tags
}
resource "azurerm_subnet" "spoke_app" {
name = "app"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.spoke.name
address_prefixes = ["10.1.1.0/24"]
}
resource "azurerm_network_security_group" "spoke_app" {
name = "nsg-spoke-app"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
security_rule {
name = "AllowHttpsFromInternet"
priority = 100
direction = "Inbound"
access = "Allow"
protocol = "Tcp"
source_port_range = "*"
destination_port_range = "443"
source_address_prefix = "*"
destination_address_prefix = "*"
}
tags = local.tags
}
resource "azurerm_subnet_network_security_group_association" "spoke_app" {
subnet_id = azurerm_subnet.spoke_app.id
network_security_group_id = azurerm_network_security_group.spoke_app.id
}VNet पीयरिंग एक क्षेत्र के भीतर AZ-700 कनेक्टिविटी प्रिमिटिव है। परीक्षा में दो प्रमुख गुण परखे जाते हैं:
allow_forwarded_traffic — तब आवश्यक होता है जब हब एक स्पोक से दूसरे स्पोक तक ट्रैफ़िक अग्रेषित करने की योजना बनाता है (हब में फ़ायरवॉल के माध्यम से पारगमन)।use_remote_gateways / allow_gateway_transit — स्पोक हब के VPN/ER गेटवे का उपयोग करने के लिए use_remote_gateways = true का उपयोग करता है। इस लैब में हमारे पास कोई गेटवे नहीं है, लेकिन विशेषता आकार परीक्षा में परखा जाता है।resource "azurerm_virtual_network_peering" "hub_to_spoke" {
name = "hub-to-spoke"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.hub.name
remote_virtual_network_id = azurerm_virtual_network.spoke.id
allow_forwarded_traffic = true
allow_gateway_transit = true
}
resource "azurerm_virtual_network_peering" "spoke_to_hub" {
name = "spoke-to-hub"
resource_group_name = azurerm_resource_group.main.name
virtual_network_name = azurerm_virtual_network.spoke.name
remote_virtual_network_id = azurerm_virtual_network.hub.id
allow_forwarded_traffic = true
# use_remote_gateways = true # uncomment when a gateway exists in the hub
}निजी DNS ज़ोन AZ-700 नाम रिज़ॉल्यूशन डिज़ाइन और लागू करें का उत्तर हैं जो Azure के डिफ़ॉल्ट DNS पर निर्भर नहीं करता है। हम internal.contoso.com ज़ोन बनाते हैं और हब और स्पोक दोनों VNets को इससे लिंक करते हैं। अब किसी भी VNet में संसाधन इस ज़ोन में रिकॉर्ड क्वेरी कर सकते हैं।
हब लिंक पर registration_enabled = true फ़्लैग हब में संसाधनों को अपने होस्टनाम को स्वतः-पंजीकृत करने की अनुमति देता है। AZ-700 इस स्वतः-पंजीकरण बनाम मैन्युअल A-रिकॉर्ड निर्माण का परीक्षण करता है, जो बार-बार आने वाला "मुझे अपने VMs के लिए स्वच्छ DNS नाम कैसे मिलते हैं" प्रश्न है।
resource "azurerm_private_dns_zone" "main" {
name = "internal.contoso.com"
resource_group_name = azurerm_resource_group.main.name
tags = local.tags
}
resource "azurerm_private_dns_zone_virtual_network_link" "hub" {
name = "hub-link"
resource_group_name = azurerm_resource_group.main.name
private_dns_zone_name = azurerm_private_dns_zone.main.name
virtual_network_id = azurerm_virtual_network.hub.id
registration_enabled = true # auto-register hub-resident VMs
tags = local.tags
}
resource "azurerm_private_dns_zone_virtual_network_link" "spoke" {
name = "spoke-link"
resource_group_name = azurerm_resource_group.main.name
private_dns_zone_name = azurerm_private_dns_zone.main.name
virtual_network_id = azurerm_virtual_network.spoke.id
registration_enabled = false # spoke resources query but don't register
tags = local.tags
}terraform destroy सब कुछ हटा देता है। जब कोई VNet नष्ट हो जाता है तो पीयरिंग संसाधन स्वचालित रूप से अलग हो जाते हैं; Terraform सही क्रम को संभालता है। सक्रिय रिकॉर्ड वाले Private DNS ज़ोन नष्ट होने में धीमे हो सकते हैं (Azure पहले सभी उपभोक्ता लिंक के अलग होने का इंतजार करता है) — धैर्य रखें।
AZ-700 नेटवर्किंग सतहों को कवर करता है जो इस लैब में फिट नहीं हो सकतीं — VPN Gateway ($60/माह, लैब के लिए लागत-निषेधात्मक), ExpressRoute + ER Gateway, Azure Firewall + Firewall Policy + Premium IDPS ($1/घंटा निष्क्रिय), Application Gateway + WAF, Azure Front Door, Azure Load Balancer (Standard tier), Azure DNS public zones, DNS Private Resolver, Azure Bastion, Network Virtual Appliances, Virtual WAN, Route Server, कस्टम रूट टेबल (UDRs), Service Endpoints, Private Endpoints + Private Link Service, और DDoS Protection Standard।
हम हब-स्पोक + पीयरिंग + Private DNS आकार पर टिके रहते हैं क्योंकि यह वह आधार है जिससे हर दूसरा AZ-700 पैटर्न जुड़ता है। VPN Gateway हब में जाता है। फ़ायरवॉल हब में जाता है। Application Gateway स्पोक के ऐप सबनेट को सुरक्षित करता है। Private Endpoints हब के माध्यम से रूट होते हैं। टोपोलॉजी को सही करें; प्रति-पैटर्न परत करें।
उपरोक्त सतहों के लिए, इस प्रमाणपत्र पृष्ठ के ब्राउज़, मार्गदर्शिका, और Editorial अनुभाग देखें।