Terraform 0.11 - Data Source Configuration

डेटा स्रोत कॉन्फ़िगरेशन




terraform

डेटा स्रोत कॉन्फ़िगरेशन

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

डेटा स्रोतों को परिभाषित करने और लागू करने के लिए टेराफॉर्म में Providers जिम्मेदार हैं। जबकि एक resource टेराफ़ॉर्म को एक नया बुनियादी ढांचा घटक बनाने और प्रबंधित करने का कारण बनता है, डेटा स्रोत पहले से मौजूद डेटा में केवल-पढ़ने के विचार प्रस्तुत करते हैं, या वे टेराफ़ॉर्म के भीतर ही मक्खी पर नए मूल्यों की गणना करते हैं।

उदाहरण के लिए, एक डेटा स्रोत टेराफ़ॉर्म एंटरप्राइज से विरूपण साक्ष्य जानकारी, कॉन्सुल से कॉन्फ़िगरेशन जानकारी प्राप्त कर सकता है, या इसकी विशेषताओं और टैग पर फ़िल्टर करके पहले से मौजूद AWS संसाधन को देख सकता है।

टेराफॉर्म में प्रत्येक डेटा स्रोत को सबसे लंबे समय तक उपसर्ग मिलान के आधार पर प्रदाता को मैप किया जाता है। उदाहरण के लिए aws_ami डेटा स्रोत aws प्रदाता को मैप करेगा (यदि वह मौजूद है)।

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

उदाहरण

डेटा स्रोत कॉन्फ़िगरेशन निम्न की तरह दिखता है:

# Find the latest available AMI that is tagged with Component = web
data "aws_ami" "web" {
  filter {
    name   = "state"
    values = ["available"]
  }

  filter {
    name   = "tag:Component"
    values = ["web"]
  }

  most_recent = true
}

विवरण

data ब्लॉक दिए गए TYPE (पहले पैरामीटर) और NAME (दूसरा पैरामीटर) का डेटा उदाहरण बनाता है। प्रकार और नाम का संयोजन अद्वितीय होना चाहिए।

ब्लॉक के भीतर ( { } ) डेटा इंस्टेंस के लिए कॉन्फ़िगरेशन है। कॉन्फ़िगरेशन प्रकार पर निर्भर है, और प्रदाता अनुभाग में प्रत्येक डेटा स्रोत के लिए प्रलेखित है।

प्रत्येक डेटा इंस्टेंस एक या एक से अधिक विशेषताओं को निर्यात करेगा, जिसे फॉर्म data.TYPE.NAME.ATTR चर का उपयोग करके अन्य संसाधनों में data.TYPE.NAME.ATTRdata.TYPE.NAME.ATTR उदाहरण के लिए:

resource "aws_instance" "web" {
  ami           = "${data.aws_ami.web.id}"
  instance_type = "t1.micro"
}

मेटा मानकों

चूंकि डेटा स्रोत अनिवार्य रूप से संसाधनों का केवल एक सबसेट पढ़ा जाता है, वे lifecycle कॉन्फ़िगरेशन ब्लॉक को छोड़कर संसाधनों के समान meta-parameters का समर्थन करते हैं।

कई प्रदाता उदाहरण

इसी प्रकार resource , provider मेटा-पैरामीटर का उपयोग किया जा सकता है जहां एक कॉन्फ़िगरेशन में एक ही प्रदाता के कई अलग-अलग उदाहरण हैं:

data "aws_ami" "web" {
  provider = "aws.west"

  # ...
}

अधिक जानकारी के लिए संसाधनों के लिए "एकाधिक प्रदाता उदाहरण" प्रलेखन देखें।

डेटा स्रोत जीवनचक्र

यदि किसी डेटा उदाहरण के तर्कों में संगणित मानों का कोई संदर्भ नहीं है, जैसे कि संसाधनों की विशेषताएँ जो अभी तक नहीं बनाई गई हैं, तो डेटा उदाहरण को पढ़ा जाएगा और इसके राज्य को टेराफॉर्म के "ताज़ा" चरण के दौरान अद्यतन किया जाएगा, जो डिफ़ॉल्ट रूप से पहले चलता है एक योजना बना रहा है। यह सुनिश्चित करता है कि प्राप्त डेटा योजना के दौरान उपयोग के लिए उपलब्ध है और अंतर प्राप्त वास्तविक मूल्यों को दिखाएगा।

डेटा उदाहरण तर्क संगणित मानों को संदर्भित कर सकते हैं, जिस स्थिति में उदाहरण की विशेषताओं को तब तक हल नहीं किया जा सकता है जब तक कि इसके सभी तर्क परिभाषित नहीं किए जाते हैं। इस स्थिति में, डेटा उदाहरण को ताज़ा करने पर "लागू" चरण तक स्थगित कर दिया जाएगा, और डेटा उदाहरण विशेषताओं के सभी प्रक्षेप योजना में "गणना" के रूप में दिखाएंगे क्योंकि मूल्य अभी तक ज्ञात नहीं हैं।