Terraform 0.11 - Local Value Configuration

स्थानीय मूल्य विन्यास




terraform

स्थानीय मूल्य विन्यास

स्थानीय मान एक नाम को एक अभिव्यक्ति प्रदान करते हैं, जिसे तब एक मॉड्यूल के भीतर कई बार उपयोग किया जा सकता है।

एक पारंपरिक प्रोग्रामिंग भाषा में कार्यों के लिए मॉड्यूल की तुलना, अगर variables फ़ंक्शन के तर्कों के अनुरूप हैं और outputs फ़ंक्शन रिटर्न मानों के अनुरूप हैं, तो स्थानीय मान किसी फ़ंक्शन के स्थानीय चर के लिए तुलनीय हैं।

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

उदाहरण

स्थानीय मानों को locals ब्लॉकों में परिभाषित किया गया है:

# Ids for multiple sets of EC2 instances, merged together
locals {
  instance_ids = "${concat(aws_instance.blue.*.id, aws_instance.green.*.id)}"
}

# A computed default name prefix
locals {
  default_name_prefix = "${var.project_name}-web"
  name_prefix         = "${var.name_prefix != "" ? var.name_prefix : local.default_name_prefix}"
}

# Local values can be interpolated elsewhere using the "local." prefix.
resource "aws_s3_bucket" "files" {
  bucket = "${local.name_prefix}-files"
  # ...
}

नामांकित स्थानीय मानचित्रों को सामान्य या डिफ़ॉल्ट मानों को लागू करने के लिए स्थानीय मानचित्रों के साथ विलय किया जा सकता है:

# Define the common tags for all resources
locals {
  common_tags = {
    Component   = "awesome-app"
    Environment = "production"
  }
}

# Create a resource that blends the common tags with instance-specific tags.
resource "aws_instance" "server" {
  ami           = "ami-123456"
  instance_type = "t2.micro"

  tags = "${merge(
    local.common_tags,
    map(
      "Name", "awesome-app-server",
      "Role", "server"
    )
  )}"
}

विवरण

locals ब्लॉक एक मॉड्यूल के भीतर एक या अधिक स्थानीय चर को परिभाषित करता है। प्रत्येक locals ब्लॉक में आवश्यकतानुसार कई स्थानीय हो सकते हैं, और किसी मॉड्यूल के भीतर किसी भी संख्या में locals ब्लॉक हो सकते हैं।

locals ब्लॉक में आइटम के लिए दिए गए नाम पूरे मॉड्यूल में अद्वितीय होने चाहिए। दिए गए मूल्य में कोई भी अभिव्यक्ति हो सकती है जो वर्तमान मॉड्यूल के भीतर मान्य है।

एक स्थानीय मूल्य की अभिव्यक्ति अन्य स्थानीय लोगों को संदर्भित कर सकती है, लेकिन हमेशा की तरह संदर्भ चक्रों की अनुमति नहीं है। यह है, एक स्थानीय खुद को या एक चर को संदर्भित नहीं कर सकता है जो इसे वापस (प्रत्यक्ष या अप्रत्यक्ष रूप से) संदर्भित करता है।

यह एक ही ब्लॉक में तार्किक रूप से संबंधित स्थानीय मूल्यों को एक साथ समूहित करने की सिफारिश की जाती है, खासकर अगर वे एक-दूसरे पर निर्भर होते हैं। इससे पाठक को चरों के बीच संबंधों को समझने में मदद मिलेगी। इसके विपरीत, अलग-अलग ब्लॉकों में असंबंधित स्थानीय मानों को परिभाषित करना पसंद करते हैं, और प्रत्येक ब्लॉक को टिप्पणी करने के साथ किसी भी संदर्भ को सभी संलग्न स्थानीय लोगों के लिए सामान्य बताने पर विचार करें।