Terraform 0.11

aws_lb




terraform

aws_lb

एक लोड बैलेंसर संसाधन प्रदान करता है।

उदाहरण उपयोग

आवेदन लोड Balancer

resource "aws_lb" "test" {
  name               = "test-lb-tf"
  internal           = false
  load_balancer_type = "application"
  security_groups    = ["${aws_security_group.lb_sg.id}"]
  subnets            = ["${aws_subnet.public.*.id}"]

  enable_deletion_protection = true

  access_logs {
    bucket  = "${aws_s3_bucket.lb_logs.bucket}"
    prefix  = "test-lb"
    enabled = true
  }

  tags {
    Environment = "production"
  }
}

नेटवर्क लोड बैलेंसर

resource "aws_lb" "test" {
  name               = "test-lb-tf"
  internal           = false
  load_balancer_type = "network"
  subnets            = ["${aws_subnet.public.*.id}"]

  enable_deletion_protection = true

  tags {
    Environment = "production"
  }
}

लोचदार आईपी निर्दिष्ट करना

resource "aws_lb" "example" {
  name               = "example"
  load_balancer_type = "network"

  subnet_mapping {
    subnet_id    = "${aws_subnet.example1.id}"
    allocation_id = "${aws_eip.example1.id}"
  }

  subnet_mapping {
    subnet_id    = "${aws_subnet.example2.id}"
    allocation_id = "${aws_eip.example2.id}"
  }
}

तर्क संदर्भ

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

  • name - (वैकल्पिक) LB का नाम यह नाम आपके AWS खाते में अद्वितीय होना चाहिए, इसमें अधिकतम 32 वर्ण हो सकते हैं, इसमें केवल अल्फ़ान्यूमेरिक वर्ण या हाइफ़न होना चाहिए, और हाइफ़न के साथ प्रारंभ या समाप्त नहीं होना चाहिए। यदि निर्दिष्ट नहीं है, तो Terraform tf-lb साथ शुरू होने वाले नाम को स्वचालित करेगा।
  • name_prefix - (वैकल्पिक) निर्दिष्ट उपसर्ग के साथ एक अद्वितीय नाम बनाता है। name साथ संघर्ष।
  • internal - (वैकल्पिक) यदि सही है, तो एलबी आंतरिक होगा।
  • load_balancer_type - (वैकल्पिक) लोड बैलेंसर बनाने का प्रकार। संभावित मूल्य application या network । डिफ़ॉल्ट मान application
  • security_groups - (वैकल्पिक) LB को असाइन करने के लिए सुरक्षा समूह ID की एक सूची। केवल प्रकार application लोड Balancers के लिए मान्य है।
  • access_logs - (वैकल्पिक) एक प्रवेश लॉग ब्लॉक। प्रवेश लॉग नीचे प्रलेखित है। केवल प्रकार application लोड Balancers के लिए मान्य है।
  • subnets - (वैकल्पिक) एलबी से जुड़ी सबनेट आईडी की एक सूची। सबनेट्स को प्रकार network लोड बैलेंसर्स के लिए अपडेट नहीं किया जा सकता है। टाइप network लोड बैलेंसर्स के लिए इस मान को बदलना संसाधन के एक मनोरंजन को मजबूर करेगा।
  • subnet_mapping - (वैकल्पिक) एक सबनेट मैपिंग ब्लॉक जैसा कि नीचे दिया गया है।
  • idle_timeout - (वैकल्पिक) सेकंड में वह समय जो कनेक्शन को निष्क्रिय होने की अनुमति देता है। केवल प्रकार application लोड Balancers के लिए मान्य है। डिफ़ॉल्ट: 60।
  • enable_deletion_protection - (वैकल्पिक) सही होने पर, लोड बैलेंसर को हटाना AWS API के माध्यम से अक्षम हो जाएगा। यह टेराफॉर्म को लोड बैलेंसर को हटाने से रोकेगा। false अवहेलना करता false
  • enable_cross_zone_load_balancing - (वैकल्पिक) यदि सही है, तो लोड बैलेंसर के क्रॉस-ज़ोन लोड संतुलन को सक्षम किया जाएगा। यह एक network लोड बैलेंसर फीचर है। false अवहेलना करता false
  • enable_http2 - (वैकल्पिक) इंगित करता है कि क्या HTTP / 2 application लोड enable_http2 में सक्षम है। true अवहेलना।
  • ip_address_type - (वैकल्पिक) आपके लोड बैलेंसर के लिए सबनेट द्वारा उपयोग किए गए आईपी पते का प्रकार। संभावित मान ipv4 और dualstack
  • tags - (वैकल्पिक) संसाधन को असाइन करने के लिए टैग की मैपिंग।

प्रवेश लॉग ( access_logs ) निम्नलिखित का समर्थन करते हैं:

  • bucket - (आवश्यक) लॉग में स्टोर करने के लिए S3 बाल्टी नाम।
  • prefix - (वैकल्पिक) S3 बाल्टी उपसर्ग। लॉग कॉन्फ़िगर नहीं किए जाने पर रूट में संग्रहीत किए जाते हैं।
  • enable - (वैकल्पिक) access_logs अक्षम / निष्क्रिय करने के लिए बूलियन। bucket को निर्दिष्ट करने पर भी, false लिए चूक।

सबनेट मैपिंग ( subnet_mapping ) ब्लॉक निम्नलिखित का समर्थन करते हैं:

  • subnet_id - (आवश्यक) लोड बैलेंसर से अटैच करने के लिए सबनेट की आईडी। आप प्रति उपलब्धता क्षेत्र में केवल एक सबनेट निर्दिष्ट कर सकते हैं।
  • allocation_id - (वैकल्पिक) एलास्टिक आईपी पते की आवंटन आईडी।

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

निम्नलिखित विशेषताओं को ऊपर सूचीबद्ध तर्कों के अतिरिक्त निर्यात किया गया है:

  • id - लोड बैलेंसर का ARN (मिलान arn )।
  • arn - लोड बैलेंसर का ARN (मिलान id )।
  • arn_suffix - CloudWatch मेट्रिक्स के साथ उपयोग के लिए ARN प्रत्यय।
  • dns_name - लोड बैलेंसर का DNS नाम।
  • canonical_hosted_zone_id - लोड बैलेंसर की कैनोनिकल होस्टेड ज़ोन आईडी।
  • zone_id - लोड बैलेंसर की कैनोनिकल होस्टेड ज़ोन आईडी (रूट 53 एलियास रिकॉर्ड में उपयोग की जाने वाली)।

समय समाप्ति

aws_lb निम्नलिखित aws_lb कॉन्फ़िगरेशन विकल्प प्रदान करता है:

  • create - (डिफ़ॉल्ट 10 minutes ) LB बनाने के लिए प्रयुक्त
  • update - (डिफ़ॉल्ट 10 minutes ) एलबी संशोधनों के लिए उपयोग किया जाता है
  • delete - (डिफ़ॉल्ट 10 minutes ) एलबी को नष्ट करने के लिए उपयोग किया जाता है

आयात

एलबी को अपने एआरएन का उपयोग करके आयात किया जा सकता है, जैसे

$ terraform import aws_lb.bar arn:aws:elasticloadbalancing:us-west-2:123456789012:loadbalancer/app/my-load-balancer/50dc6c495c0c9188