Terraform 0.11 - Output Configuration

आउटपुट कॉन्फ़िगरेशन




terraform

आउटपुट कॉन्फ़िगरेशन

आउटपुट मानों को परिभाषित करते हैं जो टेराफ़ॉर्म लागू होने पर उपयोगकर्ता को हाइलाइट किए जाएंगे, और आउटपुट कमांड का उपयोग करके आसानी से क्वेर किया जा सकता है। आरंभिक गाइड में आउटपुट उपयोग अधिक विस्तार से कवर किया गया है। यह पृष्ठ आउटपुट के लिए कॉन्फ़िगरेशन सिंटैक्स को कवर करता है।

Terraform बुनियादी ढांचे के बारे में बहुत कुछ जानता है जो इसे प्रबंधित करता है। अधिकांश संसाधनों में उनके साथ जुड़ी विशेषताएं होती हैं, और आउटपुट आसानी से उस जानकारी को निकालने और क्वेरी करने का एक तरीका है।

यह पृष्ठ मानता है कि आप पहले से ही विन्यास वाक्य रचना से परिचित हैं।

उदाहरण

एक साधारण आउटपुट कॉन्फ़िगरेशन निम्न की तरह दिखता है:

output "address" {
  value = "${aws_instance.db.public_dns}"
}

यह "db" नामक टेराफ़ॉर्म-परिभाषित AWS उदाहरण के सार्वजनिक DNS पते के अनुरूप एक स्ट्रिंग मान को आउटपुट करेगा। नक्शे और सूचियों जैसे जटिल डेटा प्रकारों को भी निर्यात करना संभव है:

output "addresses" {
  value = ["${aws_instance.web.*.public_dns}"]
}

विवरण

output ब्लॉक किसी एकल आउटपुट चर को कॉन्फ़िगर करता है। एकाधिक आउटपुट चर को कई आउटपुट ब्लॉक के साथ कॉन्फ़िगर किया जा सकता है। आउटपुट ब्लॉक को दिया गया NAME आउटपुट चर का संदर्भ देने के लिए उपयोग किया जाने वाला नाम है। यदि यह अन्य मॉड्यूल के इनपुट के रूप में उपयोग किया जाना है तो यह टेराफॉर्म चर नामकरण सम्मेलनों के अनुरूप होना चाहिए।

ब्लॉक के भीतर ( { } ) आउटपुट के लिए कॉन्फ़िगरेशन है। ये वे पैरामीटर हैं जिन्हें सेट किया जा सकता है:

  • value (आवश्यक) - आउटपुट का मूल्य। यह एक स्ट्रिंग, सूची या मानचित्र हो सकता है। इसमें आमतौर पर एक प्रक्षेप शामिल होता है क्योंकि आउटपुट जो स्थिर होते हैं वे आमतौर पर उपयोगी नहीं होते हैं।

  • description (वैकल्पिक) - आउटपुट के लिए एक मानव-अनुकूल वर्णन। यह मुख्य रूप से आपके टेराफ़ॉर्म कॉन्फ़िगरेशन का उपयोग करने वाले उपयोगकर्ताओं के लिए प्रलेखन के लिए है। टेराफॉर्म का एक भविष्य संस्करण कुछ टेराफॉर्म सीएलआई कमांड के हिस्से के रूप में इन विवरणों को उजागर करेगा।

  • depends_on (स्ट्रिंग्स की सूची) - स्पष्ट निर्भरताएँ जो इस आउटपुट में हैं। इस आउटपुट मान के संसाधित होने से पहले ये निर्भरताएँ बनाई जाएंगी। निर्भरताएँ TYPE.NAME के प्रारूप में हैं, उदाहरण के लिए aws_instance.web

  • sensitive (वैकल्पिक, बूलियन) - नीचे देखें।

वाक्य - विन्यास

पूर्ण वाक्यविन्यास है:

output NAME {
  value = VALUE
}

संवेदनशील आउटपुट

sensitive गुण को true तरह सेट करके संवेदनशील सामग्री वाले आउटपुट को चिह्नित किया जा सकता है:

output "sensitive" {
  sensitive = true
  value     = VALUE
}

जब आउटपुट ऑन स्क्रीन पर terraform apply या terraform refresh बाद प्रदर्शित terraform apply , तो संवेदनशील आउटपुट को फिर से सक्रिय किया जाता है, जिसमें <sensitive> उनके मूल्य के स्थान पर प्रदर्शित होता है।

संवेदनशील आउटपुट की सीमाएं

  • संवेदनशील आउटपुट के मान अभी भी टेराफ़ॉर्म राज्य में संग्रहीत किए जाते हैं, और terraform output कमांड का उपयोग करके उपलब्ध हैं, इसलिए मूल्यों की रक्षा के एकमात्र साधन के रूप में इस पर भरोसा नहीं किया जा सकता है।

  • संवेदनशीलता को आंतरिक रूप से ट्रैक नहीं किया जाता है, इसलिए यदि आउटपुट को किसी अन्य मॉड्यूल में एक संसाधन में प्रक्षेपित किया जाता है, तो मूल्य प्रदर्शित किया जाएगा।