Terraform 0.11

aws_elasticsearch_domain




terraform

aws_elasticsearch_domain

उदाहरण उपयोग

variable "domain" {
  default = "tf-test"
}

data "aws_region" "current" {}

data "aws_caller_identity" "current" {}

resource "aws_elasticsearch_domain" "es" {
  domain_name           = "${var.domain}"
  elasticsearch_version = "1.5"
  cluster_config {
    instance_type = "r3.large.elasticsearch"
  }

  advanced_options {
    "rest.action.multi.allow_explicit_index" = "true"
  }

  access_policies = <<CONFIG
{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Action": "es:*",
            "Principal": "*",
            "Effect": "Allow",
            "Resource": "arn:aws:es:${data.aws_region.current.name}:${data.aws_caller_identity.current.account_id}:domain/${var.domain}/*"
            "Condition": {
                "IpAddress": {"aws:SourceIp": ["66.193.100.22/32"]}
            }
        }
    ]
}
CONFIG

  snapshot_options {
    automated_snapshot_start_hour = 23
  }

  tags {
    Domain = "TestDomain"
  }
}

तर्क संदर्भ

निम्नलिखित तर्क समर्थित हैं:

  • domain_name - (आवश्यक) डोमेन का नाम।
  • access_policies - (वैकल्पिक) IAM नीति दस्तावेज़ डोमेन के लिए पहुँच नीतियों को निर्दिष्ट करता है
  • advanced_options - (वैकल्पिक) उन्नत कॉन्फ़िगरेशन विकल्पों को निर्दिष्ट करने के लिए कुंजी-मूल्य स्ट्रिंग जोड़े। ध्यान दें कि इन कॉन्फ़िगरेशन विकल्पों के लिए मान स्ट्रिंग्स (उद्धरणों में लिपटे हुए) होने चाहिए या वे गलत हो सकते हैं और हमेशा के लिए भिन्न हो सकते हैं, जिससे टेराफ़ॉर्म आपके हर आवेदन पर आपके इलास्टिक्स खोज डोमेन को फिर से बनाना चाहते हैं।
  • ebs_options - (वैकल्पिक) ईबीएस संबंधित विकल्प, चुने हुए उदाहरण के आकार के आधार पर आवश्यक हो सकते हैं। निचे देखो।
  • encrypt_at_rest - (वैकल्पिक) बाकी विकल्पों पर एन्क्रिप्ट करें। केवल कुछ निश्चित प्रकारों के लिए उपलब्ध है। निचे देखो।
  • cluster_config - (वैकल्पिक) डोमेन का क्लस्टर कॉन्फ़िगरेशन, नीचे देखें।
  • Snapshot_options - (वैकल्पिक) स्नैपशॉट संबंधित विकल्प, नीचे देखें।
  • vpc_options - (वैकल्पिक) VPC संबंधित विकल्प, नीचे देखें। इस कॉन्फ़िगरेशन को जोड़ना या निकालना एक नए संसाधन ( documentation ) को documentation
  • log_publishing_options - (वैकल्पिक) CloudWatch लॉग में धीमी लॉग को प्रकाशित करने के लिए विकल्प।
  • elasticsearch_version - (वैकल्पिक) तैनाती के लिए ElasticSearch का संस्करण। डेफ़ल्ट्स 1.5
  • tags - (वैकल्पिक) संसाधन को असाइन करने के लिए टैग की मैपिंग

ebs_options निम्नलिखित विशेषताओं का समर्थन करता है:

  • ebs_enabled - (आवश्यक) क्या ईबीएस वॉल्यूम डोमेन में डेटा नोड्स से जुड़ा हुआ है
  • volume_type - (वैकल्पिक) डेटा नोड्स से जुड़े EBS वॉल्यूम का प्रकार।
  • volume_size - डेटा नोड्स (GB में) से जुड़े EBS वॉल्यूम का आकार। आवश्यक है अगर ebs_enabled सही पर सेट हो।
  • iops - (वैकल्पिक) आधार नोड इनपुट / आउटपुट (I / O) डेटा नोड्स से जुड़े ईबीएस वॉल्यूम का प्रदर्शन। केवल प्रस्तावित IOPS EBS वॉल्यूम प्रकार के लिए लागू है।

Encrypt_at_rest निम्नलिखित विशेषताओं का समर्थन करता है:

  • enabled - (आवश्यक) आराम पर एन्क्रिप्शन सक्षम करने के लिए। अगर encrypt_at_rest ब्लॉक प्रदान नहीं किया गया है तो यह डिफ़ॉल्ट रूप से false
  • kms_key_id - (वैकल्पिक) के साथ Elasticsearch डोमेन को एन्क्रिप्ट करने के लिए KMS कुंजी आईडी। यदि निर्दिष्ट नहीं है, तो यह aws/es सेवा KMS कुंजी का उपयोग करने में चूक करता है।

क्लस्टर_config निम्नलिखित विशेषताओं का समर्थन करता है:

  • instance_type - (वैकल्पिक) क्लस्टर में डेटा नोड्स का इंस्टेंस प्रकार।
  • instance_count - (वैकल्पिक) क्लस्टर में उदाहरणों की संख्या।
  • समर्पित_मास्टर-सक्षम - (वैकल्पिक) इंगित करता है कि क्या क्लस्टर के लिए समर्पित मास्टर नोड सक्षम हैं।
  • dedicated_master_type - (वैकल्पिक) क्लस्टर में समर्पित मास्टर नोड्स का इंस्टेंस प्रकार।
  • dedicated_master_count - (वैकल्पिक) क्लस्टर में समर्पित मास्टर नोड्स की संख्या
  • zone_awareness_enabled - (वैकल्पिक) यह दर्शाता है कि क्या क्षेत्र जागरूकता सक्षम है।

vpc_options निम्नलिखित विशेषताओं का समर्थन करता है:

AWS डॉक्यूमेंटेशन: VPC सपोर्ट फॉर Amazon Elasticsearch Service Domains

  • security_group_ids - (वैकल्पिक) एलिटिक्स खोज डोमेन समापन बिंदु पर लागू होने के लिए VPC सुरक्षा समूह आईडी की सूची। यदि छोड़ दिया जाता है, तो VPC के लिए डिफ़ॉल्ट सुरक्षा समूह का उपयोग किया जाएगा।
  • subnet_ids - (आवश्यक) subnet_ids डोमेन के समापन बिंदु के लिए VPC सबनेट आईडी की सूची।

इन विशेषताओं में संदर्भित सुरक्षा समूह और सबनेट एक ही VPC के भीतर होने चाहिए; यह निर्धारित करता है कि वीपीसी क्या समापन बिंदु बनाए गए हैं।

Snapshot_options निम्नलिखित विशेषता का समर्थन करता है:

  • automated_snapshot_start_hour - (आवश्यक) घंटे जिसके दौरान सेवा डोमेन में सूचकांकों का एक स्वचालित दैनिक स्नैपशॉट लेती है।

log_publishing_options निम्नलिखित विशेषता का समर्थन करता है:

  • log_type - (आवश्यक) एक प्रकार की Elasticsearch लॉग। मान्य मान: INDEX_SLOW_LOGS, SEARCH_SLOW_LOGS
  • cloudwatch_log_group_arn - (आवश्यक) क्लाउडवॉच लॉग समूह का ARN जिसे लॉग को प्रकाशित करने की आवश्यकता है।
  • enabled - (वैकल्पिक, डिफ़ॉल्ट: सत्य) निर्दिष्ट करता है कि दिए गए लॉग प्रकाशन विकल्प सक्षम है या नहीं।

संदर्भ संदर्भित करता है

उपरोक्त सभी तर्कों के अलावा, निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • arn - डोमेन का अमेज़न संसाधन नाम (ARN)।
  • domain_id - डोमेन के लिए विशिष्ट पहचानकर्ता।
  • endpoint - डोमेन-विशिष्ट समापन बिंदु सूचकांक, खोज और डेटा अपलोड अनुरोध सबमिट करने के लिए उपयोग किया जाता है।
  • kibana_endpoint - kibana_endpoint डोमेन-विशिष्ट समापन बिंदु बिना https योजना।
  • vpc_options.0.availability_zones - यदि डोमेन VPC के अंदर बनाया गया था, तो उपलब्धता subnet_ids के अंदर उपलब्धता जोन के नाम बनाए गए थे।
  • vpc_options.0.vpc_id - यदि डोमेन VPC, VPC की ID के अंदर बनाया गया था।

आयात

ElasticSearch डोमेन domain_name , जैसे का उपयोग करके आयात किया जा सकता है

$ terraform import aws_elasticsearch_domain.example domain_name