अंतिम समीक्षा: मई 2026
साधारण Terraform के साथ DP-420 परीक्षा के AWS संसाधनों को बनाएं — एक समय में एक ब्लॉक, प्रत्येक परीक्षा डोमेन से जुड़ा हुआ। यही कोड OpenTofu पर भी काम करता है।
इस लैब के अंत तक, आपने सादे Terraform का उपयोग करके, DP-420 परीक्षा पैटर्न के लिए कॉन्फ़िगर किया गया एक Cosmos DB खाता प्रोविज़न कर लिया होगा — कोर (SQL) API, अधिकतम क्षमता के साथ ऑटस्केल थ्रूपुट, एक विचारशील विभाजन कुंजी के साथ एक डेटाबेस + कंटेनर, एक कस्टम अनुक्रमण नीति जो भारी-लिखावट वाले पाथ को बाहर करती है, पॉइंट-इन-टाइम पुनर्स्थापना सक्षम, और निरंतर बैकअप। यह DP-420 संदर्भ बेसलाइन है।
स्निपेट्स को एक ही main.tf में डालें, terraform init चलाएँ, फिर terraform apply चरण-दर-चरण चलाएँ।
>= 1.5 या OpenTofu >= 1.6।az login)।DP-420 लागत संबंधी प्रश्न Cosmos DB क्षमता मोड के बारे में हैं:
max_throughput = 1000 के साथ उपयोग करते हैं)।यह लैब अधिकतम 1000 RU/s के साथ ऑटस्केल का उपयोग करती है — शून्य ट्रैफ़िक पर भी न्यूनतम बिल ~$24/महीना (ऑटस्केल न्यूनतम अधिकतम RU/s के 10% पर बिल करता है)। $0 निष्क्रियता के लिए autoscale_settings को serverless क्षमता पर स्विच करें। यदि आप स्विच नहीं करते हैं तो तुरंत नष्ट करें।
मानक Azure ओपनर। Cosmos DB खाता नाम विश्व स्तर पर अद्वितीय होने चाहिए (DNS-प्रकाशित के रूप में <name>.documents.azure.com) — random_id टकराव से बचाता है।
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 = 3
}
data "azurerm_client_config" "current" {}
locals {
tags = {
Project = "certlabpro-dp-420"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-dp-420-rg"
location = "eastus"
tags = local.tags
}DP-420 Cosmos DB समाधान लागू करें, प्रबंधित करें और मॉनिटर करें सीधे बैकअप मोड का परीक्षण करता है: आवधिक (डिफ़ॉल्ट; हर 4 घंटे में 2 बैकअप 8 दिनों तक बनाए रखे जाते हैं) बनाम निरंतर (30 या 7 दिनों के भीतर किसी भी सेकंड में पॉइंट-इन-टाइम पुनर्स्थापना)। निरंतर उत्पादन-स्तर का उत्तर है; लागत कम रखने के लिए हम लैब के लिए 7-दिवसीय टियर का उपयोग करते हैं।
local_authentication_disabled = true Entra ID प्रमाणीकरण को बाध्य करता है — DP-420 उत्पादन उत्तर। Cosmos का RBAC डेटा-प्लेन मॉडल सबसे अधिक परीक्षण किए गए परीक्षा विषयों में से एक है।
resource "azurerm_cosmosdb_account" "main" {
name = "cosmos-dp420-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
offer_type = "Standard"
kind = "GlobalDocumentDB" # Core (SQL) API — DP-420 default
consistency_policy {
consistency_level = "BoundedStaleness"
max_interval_in_seconds = 10
max_staleness_prefix = 100
}
geo_location {
location = azurerm_resource_group.main.location
failover_priority = 0
}
backup {
type = "Continuous"
tier = "Continuous7Days" # cheapest continuous-backup tier
}
local_authentication_disabled = true # Entra auth only
tags = local.tags
}कंटेनर वह जगह है जहाँ DP-420 परीक्षा का सबसे अधिक समय खर्च करता है। हम उदाहरण के लिए /userId को विभाजन कुंजी के रूप में चुनते हैं — उच्च कार्डिनैलिटी (अच्छा वितरण), विशिष्ट एक्सेस पैटर्न मेरे उपयोगकर्ता के रिकॉर्ड प्राप्त करें है, इसलिए हम विभाजन के भीतर पढ़ते हैं (सबसे तेज़, सबसे सस्ता RU/s)।
अनुक्रमण नीति अगला बड़ा DP-420 लागत लीवर है। डिफ़ॉल्ट रूप से Cosmos हर प्रॉपर्टी को अनुक्रमित करता है — तेज़ क्वेरी, महंगी लिखाई। हम /largeBlob/? (एक पाथ जो भारी असंरचित डेटा रखता है जिसे हम कभी क्वेरी नहीं करते) और /_etag/? (स्वचालित रूप से प्रबंधित, अनुक्रमित करने के लिए कोई मान नहीं) को बाहर करते हैं। कस्टम अनुक्रमण नीतियों का स्पष्ट रूप से भारी-लिखावट वाले वर्कलोड के लिए लागत-अनुकूलन उत्तर के रूप में परीक्षण किया जाता है।
अधिकतम 1000 RU/s का ऑटस्केल — निष्क्रियता पर अधिकतम न्यूनतम का 10% बिल करता है (100 RU/s = ~$24/महीना)। एक वास्तविक उत्पादन डेटाबेस के लिए आप प्रति अनुरोध अपेक्षित RU/s को मॉडल करेंगे, निरंतर QPS से गुणा करेंगे, 1.5x सुरक्षा से गुणा करेंगे, उस संख्या पर अधिकतम सेट करेंगे।
resource "azurerm_cosmosdb_sql_database" "app" {
name = "appdb"
resource_group_name = azurerm_resource_group.main.name
account_name = azurerm_cosmosdb_account.main.name
autoscale_settings {
max_throughput = 1000
}
}
resource "azurerm_cosmosdb_sql_container" "user_events" {
name = "user-events"
resource_group_name = azurerm_resource_group.main.name
account_name = azurerm_cosmosdb_account.main.name
database_name = azurerm_cosmosdb_sql_database.app.name
partition_key_paths = ["/userId"]
indexing_policy {
indexing_mode = "consistent"
included_path {
path = "/*"
}
excluded_path {
path = "/largeBlob/?"
}
excluded_path {
path = "/_etag/?"
}
}
default_ttl = -1 # explicit opt-in (-1 means no auto-expiry); set to seconds for TTL
}चरण 2 से local_authentication_disabled = true के साथ, कंटेनर को पढ़ने या लिखने का एकमात्र तरीका Entra ID प्रमाणीकरण + Cosmos के डेटा-प्लेन RBAC के माध्यम से है। अंतर्निहित Cosmos DB Built-in Data Contributor भूमिका (GUID 00000000-0000-0000-0000-000000000002) खाता दायरे पर पूर्ण पढ़ने/लिखने की अनुमति देती है।
DP-420 कंट्रोल-प्लेन बनाम डेटा-प्लेन भूमिका के अंतर का परीक्षण करता है: कंट्रोल-प्लेन RBAC (Azure RBAC) खाते को स्वयं प्रबंधित करता है (कंटेनर बनाएँ, थ्रूपुट बदलें); डेटा-प्लेन RBAC (Cosmos-विशिष्ट) कंटेनरों के अंदर दस्तावेज़ों को प्रबंधित करता है। वे अलग-अलग भूमिका असाइनमेंट हैं; एक दूसरे का अर्थ नहीं है।
resource "azurerm_cosmosdb_sql_role_assignment" "me_data_contributor" {
resource_group_name = azurerm_resource_group.main.name
account_name = azurerm_cosmosdb_account.main.name
role_definition_id = "${azurerm_cosmosdb_account.main.id}/sqlRoleDefinitions/00000000-0000-0000-0000-000000000002"
principal_id = data.azurerm_client_config.current.object_id
scope = azurerm_cosmosdb_account.main.id
}terraform destroy सब कुछ हटा देता है। Cosmos DB खातों में एक 7-दिवसीय सॉफ्ट-डिलीट विंडो होती है — विंडो के दौरान नाम आरक्षित रहता है। ऑटस्केल थ्रूपुट नष्ट करने पर तुरंत बिलिंग बंद कर देता है।
DP-420 कई Cosmos DB सुविधाओं को कवर करता है जो इस लैब में फिट नहीं हो सकती हैं — विश्लेषणात्मक क्वेरी के लिए Synapse Link, चेंज फीड प्रोसेसर, MongoDB / Cassandra / Gremlin / Table के लिए Cosmos DB (हम केवल कोर SQL का उपयोग करते हैं), बहु-क्षेत्रीय लिखाई (मल्टी-मास्टर), निजी एंडपॉइंट्स, ग्राहक-प्रबंधित कुंजी, पदानुक्रमित विभाजन कुंजी (लिखने के समय पूर्वावलोकन में), और Cosmos DB सर्वरलेस क्षमता मोड गहराई से।
हम विभाजन कुंजी + अनुक्रमण + ऑटस्केल + RBAC + निरंतर बैकअप प्रिमिटिव्स पर टिके रहते हैं क्योंकि वे सबसे अधिक परीक्षण किए गए DP-420 गुण हैं। बहु-क्षेत्रीय लिखाई अतिरिक्त geo_location ब्लॉक के माध्यम से इस आधार पर परत करती है; निजी एंडपॉइंट्स azurerm_private_endpoint के माध्यम से परत करते हैं; Synapse Link एक एकल विशेषता टॉगल है। आधार को सही करें; प्रति-पैटर्न पर बोल्ट करें।
सेवा-दर-सेवा कवरेज के लिए, इस प्रमाणपत्र पृष्ठ के ब्राउज़ और Editorial अनुभाग देखें।