Terraform 0.11

azurerm_application_gateway




terraform

azurerm_application_gateway

कॉन्फ़िगर किए गए सबनेट के साथ पहले से बनाए गए वर्चुअल नेटवर्क के आधार पर एक एप्लिकेशन गेटवे का प्रबंधन करता है।

उदाहरण उपयोग

# Create a resource group
resource "azurerm_resource_group" "rg" {
  name     = "my-rg-application-gateway-12345"
  location = "West US"
}

# Create a application gateway in the web_servers resource group
resource "azurerm_virtual_network" "vnet" {
  name                = "my-vnet-12345"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  address_space       = ["10.254.0.0/16"]
  location            = "${azurerm_resource_group.rg.location}"
}

resource "azurerm_subnet" "sub1" {
  name                 = "my-subnet-1"
  resource_group_name  = "${azurerm_resource_group.rg.name}"
  virtual_network_name = "${azurerm_virtual_network.vnet.name}"
  address_prefix       = "10.254.0.0/24"
}

resource "azurerm_subnet" "sub2" {
  name                 = "my-subnet-2"
  resource_group_name  = "${azurerm_resource_group.rg.name}"
  virtual_network_name = "${azurerm_virtual_network.vnet.name}"
  address_prefix       = "10.254.2.0/24"
}

resource "azurerm_public_ip" "pip" {
  name                         = "my-pip-12345"
  location                     = "${azurerm_resource_group.rg.location}"
  resource_group_name          = "${azurerm_resource_group.rg.name}"
  public_ip_address_allocation = "dynamic"
}

# Create an application gateway
resource "azurerm_application_gateway" "network" {
  name                = "my-application-gateway-12345"
  resource_group_name = "${azurerm_resource_group.rg.name}"
  location            = "West US"

  sku {
    name           = "Standard_Small"
    tier           = "Standard"
    capacity       = 2
  }

  gateway_ip_configuration {
      name         = "my-gateway-ip-configuration"
      subnet_id    = "${azurerm_virtual_network.vnet.id}/subnets/${azurerm_subnet.sub1.name}"
  }

  frontend_port {
      name         = "${azurerm_virtual_network.vnet.name}-feport"
      port         = 80
  }

  frontend_ip_configuration {
      name         = "${azurerm_virtual_network.vnet.name}-feip"
      public_ip_address_id = "${azurerm_public_ip.pip.id}"
  }

  backend_address_pool {
      name = "${azurerm_virtual_network.vnet.name}-beap"
  }

  backend_http_settings {
      name                  = "${azurerm_virtual_network.vnet.name}-be-htst"
      cookie_based_affinity = "Disabled"
      port                  = 80
      protocol              = "Http"
     request_timeout        = 1
  }

  http_listener {
        name                                  = "${azurerm_virtual_network.vnet.name}-httplstn"
        frontend_ip_configuration_name        = "${azurerm_virtual_network.vnet.name}-feip"
        frontend_port_name                    = "${azurerm_virtual_network.vnet.name}-feport"
        protocol                              = "Http"
  }

  request_routing_rule {
          name                       = "${azurerm_virtual_network.vnet.name}-rqrt"
          rule_type                  = "Basic"
          http_listener_name         = "${azurerm_virtual_network.vnet.name}-httplstn"
          backend_address_pool_name  = "${azurerm_virtual_network.vnet.name}-beap"
          backend_http_settings_name = "${azurerm_virtual_network.vnet.name}-be-htst"
  }
}

तर्क संदर्भ

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

  • name - (आवश्यक) आवेदन गेटवे का नाम। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • resource_group_name - (आवश्यक) संसाधन समूह का नाम जिसमें एप्लिकेशन गेटवे बनाना है।

  • location - (आवश्यक) वह स्थान / क्षेत्र जहाँ एप्लिकेशन गेटवे बनाया जाता है। इस परिवर्तन से एक नया संसाधन बनने के लिए बाध्य होता है।

  • sku - (आवश्यक) अनुप्रयोग गेटवे का आकार, स्तर और क्षमता निर्दिष्ट करता है। एक बार निर्दिष्ट किया जाना चाहिए। sku ब्लॉक फ़ील्ड नीचे दस्तावेजित हैं।

  • gateway_ip_configuration - (आवश्यक) gateway_ip_configuration सूची जो एप्लिकेशन गेटवे में तैनात है। एप्लिकेशन गेटवे को मौजूदा वर्चुअल नेटवर्क / सबनेट में तैनात किया जाना चाहिए। कोई अन्य संसाधन एक सबनेट में लागू नहीं किया जा सकता है जहां एप्लिकेशन गेटवे तैनात किया गया है। gateway_ip_configuration ब्लॉक नीचे प्रलेखित फ़ील्ड का समर्थन करता है।

  • frontend_port - (आवश्यक) अनुप्रयोग गेटवे के लिए फ्रंट-एंड पोर्ट। frontend_port ब्लॉक नीचे प्रलेखित क्षेत्रों का समर्थन करता है।

  • frontend_ip_configuration - (आवश्यक) फ्रंटएंड IP कॉन्फ़िगरेशन की सूचियों को निर्दिष्ट करता है। वर्तमान में केवल एक सार्वजनिक और / या एक निजी आईपी पते को निर्दिष्ट किया जा सकता है। इसके अलावा एक frontendIpConfiguration तत्व दोनों सार्वजनिक या निजी IP पता निर्दिष्ट कर सकता है, दोनों नहीं। frontend_ip_configuration ब्लॉक नीचे प्रलेखित फ़ील्ड का समर्थन करता है।

  • backend_address_pool - (आवश्यक) बैकेंड पूल backend_address_pool , वर्चुअल मशीन स्केल सेट, सार्वजनिक IP, आंतरिक IP, पूरी तरह से योग्य डोमेन नाम (FQDN), और मल्टी-टेनेंट बैक-एंड से Azure Web Apps से बना हो सकता है। एप्लिकेशन गेटवे बैकेंड पूल के सदस्य एक उपलब्धता सेट से बंधे नहीं हैं। जब तक उनके पास IP कनेक्टिविटी है, बैकेंड पूल के सदस्य क्लस्टर, डेटा सेंटर या Azure के बाहर हो सकते हैं। backend_address_pool ब्लॉक नीचे प्रलेखित फ़ील्ड का समर्थन करता है।

  • backend_http_settings - (आवश्यक) बैकएंड http और / या https सुविधाओं का संबंधित समूह जब बैकएंड एड्रेस पूल के लिए रूटिंग किया जाता है। backend_http_settings ब्लॉक नीचे प्रलेखित फ़ील्ड का समर्थन करता है।

  • http_listener - (आवश्यक) 1 या अधिक श्रोताओं को पोर्ट, http या https और SSL प्रमाणपत्र निर्दिष्ट करने (यदि SSL ऑफलोड कॉन्फ़िगर कर रहा है) से प्रत्येक http_listener से जुड़ा हुआ है। http_listener ब्लॉक नीचे प्रलेखित क्षेत्रों का समर्थन करता है।

  • probe - (वैकल्पिक) URL जांच की सूची निर्दिष्ट करता है। probe ब्लॉक नीचे प्रलेखित क्षेत्रों का समर्थन करता है।

  • request_routing_rule - (आवश्यक) अनुरोध रूटिंग नियम बुनियादी या पथ आधारित हो सकते हैं। अनुरोध रूटिंग नियम संवेदनशील हैं। request_routing_rule ब्लॉक नीचे प्रलेखित क्षेत्रों का समर्थन करता है।

  • url_path_map - (वैकल्पिक) UrlPathMaps, url Path को बैकएंड मैपिंग सूचना के लिए पथ देता है, जो request_routing_rule में निर्दिष्ट PathBasedRout के लिए जानकारी देता है। url_path_map ब्लॉक नीचे प्रलेखित फ़ील्ड का समर्थन करता है।

  • authentication_certificate प्रमाणपत्र - (वैकल्पिक) प्रमाणीकरण प्रमाणपत्रों की सूची। authentication_certificate ब्लॉक नीचे प्रलेखित क्षेत्रों का समर्थन करता है।

  • ssl_certificate - (वैकल्पिक) ssl प्रमाणपत्रों की सूची। ssl_certificate ब्लॉक नीचे प्रलेखित फ़ील्ड का समर्थन करता है।

  • waf_configuration - (वैकल्पिक) वेब अनुप्रयोग फ़ायरवॉल कॉन्फ़िगरेशन सेटिंग्स। waf_configuration block नीचे प्रलेखित फ़ील्ड्स का समर्थन करता है।

  • अक्षम_एसएल_प्रोटोकॉल - टीओडीओ - "sslPolicy" पर आधारित: {"विकलांग स्क्रिपल चॉकलेट": []}

sku ब्लॉक का समर्थन करता है:

gateway_ip_configuration ब्लॉक का समर्थन करता है:

  • name - (आवश्यक) गेटवे आईपी कॉन्फ़िगरेशन का उपयोगकर्ता परिभाषित नाम।

  • subnet_id - (आवश्यक) एक सबनेट का संदर्भ। इस सबनेट में एप्लिकेशन गेटवे तैनात है। किसी अन्य संसाधन को सबनेट में लागू नहीं किया जा सकता है जहां एप्लिकेशन गेटवे तैनात किया गया है।

frontend_port ब्लॉक का समर्थन करता है:

  • name - (आवश्यक) फ्रंटएंड पोर्ट के लिए उपयोगकर्ता परिभाषित नाम।

  • port - (आवश्यक) पोर्ट संख्या।

frontend_ip_configuration block सपोर्ट करता है:

  • name - (आवश्यक) उपयोगकर्ता एक फ्रंट आईपी कॉन्फ़िगरेशन के लिए परिभाषित नाम।

  • subnet_id - (वैकल्पिक) एक सबनेट का संदर्भ।

  • private_ip_address - (वैकल्पिक) निजी आईपी पता।

  • public_ip_address_id - (वैकल्पिक) एक सार्वजनिक आईपी पते संसाधन के संसाधन आईडी को निर्दिष्ट करता है। IPAllocationMethod डायनामिक होना चाहिए।

  • private_ip_address_allocation - (वैकल्पिक) मान्य मान हैं:

backend_address_pool ब्लॉक समर्थन करता है:

  • name - (आवश्यक) बैकएंड एड्रेस पूल के लिए उपयोगकर्ता परिभाषित नाम।

  • ip_address_list - (वैकल्पिक) सार्वजनिक IPAdresses की सूची, या बैकएंड एड्रेस पूल में आंतरिक आईपी पते।

  • fqdn_list - (वैकल्पिक) बैकएंड एड्रेस पूल में FQDNs की सूची।

backend_http_settings ब्लॉक का समर्थन करता है:

  • name - (आवश्यक) बैकएंड http सेटिंग के लिए उपयोगकर्ता परिभाषित नाम।

  • port - (आवश्यक) बैकएंड एड्रेस पूल के लिए बैकेंड पोर्ट।

  • protocol - (आवश्यक) मान्य मान हैं:

  • cookie_based_affinity - (आवश्यक) मान्य मान हैं:

  • request_timeout - (आवश्यक) दूसरा में RequestTimeout। यदि रिक्वेस्ट टाइमआउट के भीतर प्रतिक्रिया नहीं मिली है तो एप्लिकेशन गेटवे अनुरोध को विफल कर देता है। न्यूनतम 1 सेकंड और अधिकतम 86400 सेकंड।

  • probe_name - (वैकल्पिक) URL जांच का संदर्भ।

  • authentication_certificate backend_http_setting - (वैकल्पिक) - उपयोग करने के लिए backend_http_setting लिए authentication_certificate संदर्भों की एक सूची। प्रत्येक तत्व में निम्न शामिल हैं:

    • name (आवश्यक)
    • id (परिकलित)

http_listener ब्लॉक समर्थन करता है:

  • name - (आवश्यक) बैकएंड http सेटिंग के लिए उपयोगकर्ता परिभाषित नाम।

  • frontend_ip_configuration_name - (आवश्यक) संदर्भ आईपी कॉन्फ़िगरेशन के लिए।

  • frontend_port_name - (आवश्यक) दृश्यपटल पोर्ट का संदर्भ।

  • protocol - (आवश्यक) मान्य मान हैं:

  • host_name - (वैकल्पिक) http_listener लिए http_listener । इसे एक मान्य DNS नाम होना चाहिए।

  • ssl_certificate_name - (वैकल्पिक) ssl प्रमाणपत्र का संदर्भ। मान्य केवल अगर प्रोटोकॉल https है।

  • require_sni - (वैकल्पिक) केवल तभी लागू होता है जब प्रोटोकॉल https है। बहु-होस्टिंग के लिए SNI सक्षम करता है। मान्य मान हैं:

  • सच

  • असत्य

probe ब्लॉक का समर्थन करता है:

  • name - (आवश्यक) एक जांच के लिए उपयोगकर्ता परिभाषित नाम।

  • protocol - (आवश्यक) प्रोटोकॉल का उपयोग जांच भेजने के लिए किया जाता है। मान्य मान हैं:

  • path - (आवश्यक) जांच का सापेक्ष मार्ग। मान्य रास्ता '/' से शुरू होता है। जांच को {प्रोटोकॉल}: // {होस्ट}: {पोर्ट} {पाथ} भेजा जाता है। उपयोग किया गया पोर्ट backend_http_settings में परिभाषित किए गए पोर्ट के समान होगा।

  • host - (आवश्यक) होस्ट नाम जांच को भेजने के लिए। यदि अनुप्रयोग गेटवे किसी एकल साइट के लिए कॉन्फ़िगर किया गया है, तो डिफ़ॉल्ट रूप से होस्ट नाम को '127.0.0.1' के रूप में निर्दिष्ट किया जाना चाहिए, जब तक कि अन्यथा कस्टम जांच में कॉन्फ़िगर न किया गया हो।

  • interval - (आवश्यक) सेकंड में जांच अंतराल। यह लगातार दो जांचों के बीच का समय अंतराल है। न्यूनतम 1 सेकंड और अधिकतम 86,400 सेकंड।

  • timeout - (आवश्यक) सेकंड में जांच का समय। इस समय अवधि के साथ वैध प्रतिक्रिया प्राप्त नहीं होने पर जांच विफल हो गई। न्यूनतम 1 सेकंड और अधिकतम 86,400 सेकंड।

  • unhealthy_threshold - (आवश्यक) जांच पुनर्प्रयास गणना। अनहेल्थी थ्रेशोल्ड में लगातार जांच विफलता की गिनती के बाद बैकेंड सर्वर को चिह्नित किया जाता है। न्यूनतम 1 सेकंड और अधिकतम 20।

  • match - (वैकल्पिक) जांच स्वास्थ्य प्रतिक्रिया मैच।

    • body - (वैकल्पिक) शरीर जो स्वास्थ्य प्रतिक्रिया में निहित होना चाहिए। "*" के लिए चूक
    • status_code - (वैकल्पिक) अनुमत स्वास्थ्य प्रतिक्रिया स्थिति कोड।

request_routing_rule ब्लॉक का समर्थन करता है:

  • name - (आवश्यक) अनुरोध मार्ग नियम के लिए उपयोगकर्ता परिभाषित नाम।

  • `rule_type '- (आवश्यक) रूटिंग नियम प्रकार। मान्य मान हैं:

  • http_listener_name - (आवश्यक) http_listener संदर्भ।

  • backend_address_pool_name - (वैकल्पिक) backend_address_pool_name संदर्भ। केवल मूल नियम के लिए मान्य।

  • backend_http_settings_name - (वैकल्पिक) backend_http_settings संदर्भ। केवल मूल नियम के लिए मान्य।

  • url_path_map_name - (वैकल्पिक) संदर्भ url_path_map । PathBasedRout नियम के लिए मान्य।

url_path_map ब्लॉक समर्थन करता है:

  • name - (आवश्यक) एक यूआरएल पथ मानचित्र के लिए उपयोगकर्ता परिभाषित नाम।

  • default_backend_address_pool_name - (आवश्यक) backend_address_pool_name संदर्भ।

  • default_backend_http_settings_name - (आवश्यक) संदर्भ backend_http_settings

  • path_rule - (आवश्यक) pathRules की सूची। pathRules आदेश संवेदनशील हैं। निर्दिष्ट क्रम में लागू होते हैं।

path_rule ब्लॉक का समर्थन करता है:

  • name - (आवश्यक) पथ नियम के लिए उपयोगकर्ता परिभाषित नाम।

  • paths - (आवश्यक) मिलान करने के लिए पथ पैटर्न की सूची। प्रत्येक के साथ शुरू होना चाहिए / और एक ही जगह एक की अनुमति दी जाती है / a के बाद अंत में है। पथ मिलानकर्ता को खिलाया गया स्ट्रिंग में पहले के बाद कोई पाठ शामिल नहीं है? या #, और उन वर्णों को यहां अनुमति नहीं है।

  • backend_address_pool_name - (आवश्यक) backend_address_pool_name संदर्भ।

  • backend_http_settings_name - (आवश्यक) backend_http_settings संदर्भ।

authentication_certificate ब्लॉक समर्थन करता है:

  • name - (आवश्यक) प्रमाणीकरण प्रमाणपत्र के लिए उपयोगकर्ता परिभाषित नाम।

  • data - (आवश्यक) बेस -64 एनकोडेड सेर सर्टिफिकेट। केवल PUT अनुरोध में लागू होता है।

ssl_certificate block सपोर्ट करता है:

  • name - (आवश्यक) SSL प्रमाणपत्र के लिए उपयोगकर्ता परिभाषित नाम।

  • data - (आवश्यक) बेस -64 डेटा में निर्दिष्ट pfx के अनुरूप सार्वजनिक प्रमाणित डेटा। केवल GET अनुरोध में लागू होता है।

  • password - (आवश्यक) डेटा में निर्दिष्ट pfx फ़ाइल के लिए पासवर्ड। केवल PUT अनुरोध में लागू होता है।

waf_configuration block सपोर्ट करता है:

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

निम्नलिखित विशेषताएँ निर्यात की जाती हैं:

  • id - आवेदन गेटवेऑनफिगरेशन आईडी।

  • name - आवेदन गेटवे का नाम।

  • resource_group_name - संसाधन समूह का नाम जिसमें एप्लिकेशन गेटवे बनाना है।

  • location - वह स्थान / क्षेत्र जहाँ एप्लिकेशन गेटवे बनाया जाता है

आयात

एप्लीकेशन गेटवे को resource id , जैसे का उपयोग करके आयात किया जा सकता है

terraform import azurerm_application_gateway.testApplicationGateway /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup1/providers/Microsoft.Network/applicationGateways/myGateway1