Служба приложений Terraform Azure - ip_restrictions - PullRequest
0 голосов
/ 24 октября 2018

Я пытаюсь установить блок ограничений IP в моем приложении-службе приложений Azure

При выполнении плана или заявки Terraform я получаю следующую ошибку: Ошибка: azurerm_app_service.app-service-1:: недопустимый или неизвестный ключ: ip_restriction

Я использовал ip_restriction для документации Terraform для ресурсов службы приложений (веб-приложений)

Вот AppServiceкод развертывания, который я использую:

resource "azurerm_app_service" "app-service-1" {
  name                    = "${var.app_service_1}"
  location                = "${data.azurerm_resource_group.core-rg.location}"
  resource_group_name     = "${data.azurerm_resource_group.core-rg.name}"
  app_service_plan_id     = "${data.azurerm_app_service_plan.app-service-plan-1.id}"
  https_only              = "True"
  enabled                 = "True"
  client_affinity_enabled = "True"

  site_config {
    always_on                 = "True"
    #default_documents        = ""
    dotnet_framework_version  = "v4.0"
    #http2_enabled            = ""
    #ip_restriction           = ""
    #java_version             = ""
    #java_container           = ""
    #java_container_version   = ""
    managed_pipeline_mode     = "Integrated"
    min_tls_version           = "1.2"
    #php_version              = ""
    #python_version           = ""
    remote_debugging_enabled  = "False"
    #remote_debugging_version = ""
    scm_type                  = "None"
    use_32_bit_worker_process = "False"
    websockets_enabled        = "True"
    #ftps_state               = ""
  }

  app_settings {
    "KeyVaultURI" = ""
    "WEBSITE_NODE_DEFAULT_VERSION" = "6.9.1"
  }

  ip_restriction {
   "ip_address"     = ""
   }

Спасибо

Ответы [ 2 ]

0 голосов
/ 31 октября 2018

Для тех, кто заинтересован, вот метод использования ipRestrictions в Terraform

ip Restrictions является частью Site_Config {}

Узнайте, как использовать ниже:

AppService.tf:

resource "azurerm_app_service" "app-service-1" {
  name                    = "${var.app_service_1}"
  location                = "${data.azurerm_resource_group.core-rg.location}"
  resource_group_name     = "${data.azurerm_resource_group.core-rg.name}"
  app_service_plan_id     = "${data.azurerm_app_service_plan.app-service-plan-1.id}"
  https_only              = "True"
  enabled                 = "True"
  client_affinity_enabled = "True"
  site_config {
    always_on                 = "True"
    #default_documents        = ""
    dotnet_framework_version  = "v4.0"
    #http2_enabled            = ""
    #ip_restriction           = ""
    #java_version             = ""
    #java_container           = ""
    #java_container_version   = ""
    managed_pipeline_mode     = "Integrated"
    min_tls_version           = "1.2"
    #php_version              = ""
    #python_version           = ""
    remote_debugging_enabled  = "False"
    #remote_debugging_version = ""
    scm_type                  = "None"
    use_32_bit_worker_process = "False"
    websockets_enabled        = "True"
    #ftps_state               = ""
    ip_restriction {
      ip_address  = "${var.ip_address_1}"
    }
    ip_restriction {
      ip_address  = "${var.ip_address_2}"
    }
    ip_restriction {
      ip_address  = "${var.ip_address_3}"
    }
  }
  app_settings {
    "KeyVaultURI" = ""
    "WEBSITE_NODE_DEFAULT_VERSION" = "6.9.1"
    }
  }
0 голосов
/ 26 октября 2018

Итак, вы столкнулись с синтаксической ошибкой.Документацию может быть сложно читать, как я узнал за последний год.Если вы читаете раздел ip_restriction , он говорит, что он занимает один или несколько.Это означает, что он ожидает массив.

Существует также раздел документации, в котором говорится, что внутри массива он ожидает объект, имеющий свойства ip_address и subnet_mask.То есть здесь

Итак, чтобы решить вашу проблему, вам нужно следующее для ip_restriction.

ip_restriction = [
    {
        ip_address = "10.0.0.0"
    }
]

Надеюсь, это поможет.

...