{"id":18578974,"url":"https://github.com/libre-devops/terraform-azurerm-linux-function-app","last_synced_at":"2025-04-30T13:33:51.789Z","repository":{"id":118714436,"uuid":"484773837","full_name":"libre-devops/terraform-azurerm-linux-function-app","owner":"libre-devops","description":"A module used to deploy the NEW Linux function app resource as per Azurerm 3.0, with some parameters :star:","archived":false,"fork":false,"pushed_at":"2024-09-24T20:15:35.000Z","size":74,"stargazers_count":2,"open_issues_count":0,"forks_count":2,"subscribers_count":0,"default_branch":"main","last_synced_at":"2024-11-06T23:42:55.604Z","etag":null,"topics":["azure","azurerm","azurerm-terraform-provider","module","terraform","terraform-module"],"latest_commit_sha":null,"homepage":"","language":"HCL","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/libre-devops.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2022-04-23T14:44:48.000Z","updated_at":"2024-09-24T20:15:38.000Z","dependencies_parsed_at":"2023-03-17T08:45:37.871Z","dependency_job_id":null,"html_url":"https://github.com/libre-devops/terraform-azurerm-linux-function-app","commit_stats":null,"previous_names":[],"tags_count":2,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-linux-function-app","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-linux-function-app/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-linux-function-app/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/libre-devops%2Fterraform-azurerm-linux-function-app/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/libre-devops","download_url":"https://codeload.github.com/libre-devops/terraform-azurerm-linux-function-app/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":231377965,"owners_count":18367485,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["azure","azurerm","azurerm-terraform-provider","module","terraform","terraform-module"],"created_at":"2024-11-06T23:38:27.911Z","updated_at":"2024-12-26T16:12:22.128Z","avatar_url":"https://github.com/libre-devops.png","language":"HCL","funding_links":[],"categories":[],"sub_categories":[],"readme":"```hcl\nresource \"azurerm_service_plan\" \"service_plan\" {\n  for_each            = { for app in var.linux_function_apps : app.name =\u003e app if app.create_new_app_service_plan == true }\n  name                = each.value.app_service_plan_name != null ? each.value.app_service_plan_name : \"asp-${each.value.name}\"\n  resource_group_name = each.value.rg_name\n  location            = each.value.location\n  os_type             = each.value.os_type != null ? each.value.os_type : \"Linux\"\n  sku_name            = each.value.sku_name\n}\n\nresource \"azurerm_linux_function_app\" \"function_app\" {\n  for_each                                       = { for app in var.linux_function_apps : app.name =\u003e app }\n  name                                           = each.value.name\n  service_plan_id                                = each.value.service_plan_id != null ? each.value.service_plan_id : lookup(azurerm_service_plan.service_plan, each.key, null).id\n  location                                       = each.value.location\n  resource_group_name                            = each.value.rg_name\n  app_settings                                   = each.value.create_new_app_insights == true \u0026\u0026 lookup(local.app_insights_map, each.value.app_insights_name, null) != null ? merge(each.value.app_settings, local.app_insights_map[each.value.app_insights_name]) : each.value.app_settings\n  https_only                                     = each.value.https_only\n  tags                                           = each.value.tags\n  builtin_logging_enabled                        = each.value.builtin_logging_enabled\n  client_certificate_enabled                     = each.value.client_certificate_enabled\n  client_certificate_mode                        = each.value.client_certificate_mode\n  client_certificate_exclusion_paths             = each.value.client_certificate_exclusion_paths\n  daily_memory_time_quota                        = each.value.daily_memory_time_quota\n  enabled                                        = each.value.enabled\n  functions_extension_version                    = each.value.functions_extension_version\n  ftp_publish_basic_authentication_enabled       = each.value.ftp_publish_basic_authentication_enable\n  public_network_access_enabled                  = each.value.public_network_access_enabled\n  key_vault_reference_identity_id                = each.value.key_vault_reference_identity_id\n  virtual_network_subnet_id                      = each.value.virtual_network_subnet_id\n  webdeploy_publish_basic_authentication_enabled = each.value.webdeploy_publish_basic_authentication_enabled\n  zip_deploy_file                                = each.value.zip_deploy_file\n\n  storage_account_name       = each.value.storage_account_name != null ? each.value.storage_account_name : null\n  storage_account_access_key = each.value.storage_account_access_key\n\n  storage_key_vault_secret_id   = each.value.storage_account_name == null ? each.value.storage_key_vault_secret_id : null\n  storage_uses_managed_identity = each.value.storage_account_access_key == null ? each.value.storage_uses_managed_identity : null\n\n\n  dynamic \"identity\" {\n    for_each = each.value.identity_type == \"SystemAssigned\" ? [each.value.identity_type] : []\n    content {\n      type = each.value.identity_type\n    }\n  }\n\n  dynamic \"identity\" {\n    for_each = each.value.identity_type == \"SystemAssigned, UserAssigned\" ? [each.value.identity_type] : []\n    content {\n      type         = each.value.identity_type\n      identity_ids = try(each.value.identity_ids, [])\n    }\n  }\n\n\n  dynamic \"identity\" {\n    for_each = each.value.identity_type == \"UserAssigned\" ? [each.value.identity_type] : []\n    content {\n      type         = each.value.identity_type\n      identity_ids = length(try(each.value.identity_ids, [])) \u003e 0 ? each.value.identity_ids : []\n    }\n  }\n\n  dynamic \"storage_account\" {\n    for_each = each.value.storage_account != null ? [each.value.storage_account] : []\n\n    content {\n      access_key   = storage_account.value.access_key\n      account_name = storage_account.value.account_name\n      name         = storage_account.value.name\n      share_name   = storage_account.value.share_name\n      type         = storage_account.value.type\n      mount_path   = storage_account.value.mount_path\n    }\n  }\n\n\n  dynamic \"sticky_settings\" {\n    for_each = each.value.sticky_settings != null ? [each.value.sticky_settings] : []\n    content {\n      app_setting_names       = sticky_settings.value.app_setting_names\n      connection_string_names = sticky_settings.value.connection_string_names\n    }\n  }\n\n  dynamic \"connection_string\" {\n    for_each = each.value.connection_string != null ? [each.value.connection_string] : []\n    content {\n      name  = connection_string.value.name\n      type  = connection_string.value.type\n      value = connection_string.value.value\n    }\n  }\n\n  dynamic \"backup\" {\n    for_each = each.value.backup != null ? [each.value.backup] : []\n    content {\n      name                = backup.value.name\n      enabled             = backup.value.enabled\n      storage_account_url = try(backup.value.storage_account_url, var.backup_sas_url)\n\n      dynamic \"schedule\" {\n        for_each = backup.value.schedule != null ? [backup.value.schedule] : []\n        content {\n          frequency_interval       = schedule.value.frequency_interval\n          frequency_unit           = schedule.value.frequency_unit\n          keep_at_least_one_backup = schedule.value.keep_at_least_one_backup\n          retention_period_days    = schedule.value.retention_period_days\n          start_time               = schedule.value.start_time\n        }\n      }\n    }\n  }\n\n  dynamic \"auth_settings\" {\n    for_each = each.value.auth_settings != null ? [each.value.auth_settings] : []\n\n    content {\n      enabled                        = auth_settings.value.enabled\n      additional_login_parameters    = auth_settings.value.additional_login_parameters\n      allowed_external_redirect_urls = auth_settings.value.allowed_external_redirect_urls\n      default_provider               = auth_settings.value.default_provider\n      issuer                         = auth_settings.value.issuer\n      runtime_version                = auth_settings.value.runtime_version\n      token_refresh_extension_hours  = auth_settings.value.token_refresh_extension_hours\n      token_store_enabled            = auth_settings.value.token_store_enabled\n      unauthenticated_client_action  = auth_settings.value.unauthenticated_client_action\n\n      dynamic \"active_directory\" {\n        for_each = auth_settings.value.active_directory != null ? [auth_settings.value.active_directory] : []\n\n        content {\n          client_id         = active_directory.value.client_id\n          client_secret     = active_directory.value.client_secret\n          allowed_audiences = active_directory.value.allowed_audiences\n        }\n      }\n\n      dynamic \"facebook\" {\n        for_each = auth_settings.value.facebook != null ? [auth_settings.value.facebook] : []\n\n        content {\n          app_id       = facebook.value.app_id\n          app_secret   = facebook.value.app_secret\n          oauth_scopes = facebook.value.oauth_scopes\n        }\n      }\n\n      dynamic \"google\" {\n        for_each = auth_settings.value.google != null ? [auth_settings.value.google] : []\n\n        content {\n          client_id     = google.value.client_id\n          client_secret = google.value.client_secret\n          oauth_scopes  = google.value.oauth_scopes\n        }\n      }\n\n      dynamic \"microsoft\" {\n        for_each = auth_settings.value.microsoft != null ? [auth_settings.value.microsoft] : []\n\n        content {\n          client_id     = microsoft.value.client_id\n          client_secret = microsoft.value.client_secret\n          oauth_scopes  = microsoft.value.oauth_scopes\n        }\n      }\n\n      dynamic \"twitter\" {\n        for_each = auth_settings.value.twitter != null ? [auth_settings.value.twitter] : []\n\n        content {\n          consumer_key    = twitter.value.consumer_key\n          consumer_secret = twitter.value.consumer_secret\n        }\n      }\n\n      dynamic \"github\" {\n        for_each = auth_settings.value.github != null ? [auth_settings.value.github] : []\n\n        content {\n          client_id                  = github.value.client_id\n          client_secret              = github.value.client_secret\n          client_secret_setting_name = github.value.client_secret_setting_name\n          oauth_scopes               = github.value.oauth_scopes\n        }\n      }\n    }\n  }\n\n  dynamic \"auth_settings_v2\" {\n    for_each = each.value.auth_settings_v2 != null ? [each.value.auth_settings_v2] : []\n\n    content {\n      auth_enabled                            = auth_settings_v2.value.auth_enabled\n      runtime_version                         = auth_settings_v2.value.runtime_version\n      config_file_path                        = auth_settings_v2.value.config_file_path\n      require_authentication                  = auth_settings_v2.value.require_authentication\n      unauthenticated_action                  = auth_settings_v2.value.unauthenticated_action\n      default_provider                        = auth_settings_v2.value.default_provider\n      excluded_paths                          = toset(auth_settings_v2.value.excluded_paths)\n      require_https                           = auth_settings_v2.value.require_https\n      http_route_api_prefix                   = auth_settings_v2.value.http_route_api_prefix\n      forward_proxy_convention                = auth_settings_v2.value.forward_proxy_convention\n      forward_proxy_custom_host_header_name   = auth_settings_v2.value.forward_proxy_custom_host_header_name\n      forward_proxy_custom_scheme_header_name = auth_settings_v2.value.forward_proxy_custom_scheme_header_name\n\n      dynamic \"apple_v2\" {\n        for_each = auth_settings_v2.value.apple_v2 != null ? [auth_settings_v2.value.apple_v2] : []\n\n        content {\n          client_id                  = apple_v2.value.client_id\n          client_secret_setting_name = apple_v2.value.client_secret_setting_name\n          login_scopes               = toset(apple_v2.value.login_scopes)\n        }\n      }\n\n      dynamic \"active_directory_v2\" {\n        for_each = auth_settings_v2.value.active_directory_v2 != null ? [auth_settings_v2.value.active_directory_v2] : []\n\n        content {\n          client_id                            = active_directory_v2.value.client_id\n          tenant_auth_endpoint                 = active_directory_v2.value.tenant_auth_endpoint\n          client_secret_setting_name           = active_directory_v2.value.client_secret_setting_name\n          client_secret_certificate_thumbprint = active_directory_v2.value.client_secret_certificate_thumbprint\n          jwt_allowed_groups                   = toset(active_directory_v2.value.jwt_allowed_groups)\n          jwt_allowed_client_applications      = toset(active_directory_v2.value.jwt_allowed_client_applications)\n          www_authentication_disabled          = active_directory_v2.value.www_authentication_disabled\n          allowed_groups                       = toset(active_directory_v2.value.allowed_groups)\n          allowed_identities                   = toset(active_directory_v2.value.allowed_identities)\n          allowed_applications                 = toset(active_directory_v2.value.allowed_applications)\n          login_parameters                     = active_directory_v2.value.login_parameters\n          allowed_audiences                    = toset(active_directory_v2.value.allowed_audiences)\n        }\n      }\n\n      dynamic \"azure_static_web_app_v2\" {\n        for_each = auth_settings_v2.value.azure_static_web_app_v2 != null ? [auth_settings_v2.value.azure_static_web_app_v2] : []\n\n        content {\n          client_id = azure_static_web_app_v2.value.client_id\n        }\n      }\n\n      dynamic \"custom_oidc_v2\" {\n        for_each = auth_settings_v2.value.custom_oidc_v2 != null ? [auth_settings_v2.value.custom_oidc_v2] : []\n\n        content {\n          name                          = custom_oidc_v2.value.name\n          client_id                     = custom_oidc_v2.value.client_id\n          openid_configuration_endpoint = custom_oidc_v2.value.openid_configuration_endpoint\n          name_claim_type               = custom_oidc_v2.value.name_claim_type\n          scopes                        = toset(custom_oidc_v2.value.scopes)\n          client_credential_method      = custom_oidc_v2.value.client_credential_method\n          client_secret_setting_name    = custom_oidc_v2.value.client_secret_setting_name\n          authorisation_endpoint        = custom_oidc_v2.value.authorisation_endpoint\n          token_endpoint                = custom_oidc_v2.value.token_endpoint\n          issuer_endpoint               = custom_oidc_v2.value.issuer_endpoint\n          certification_uri             = custom_oidc_v2.value.certification_uri\n        }\n      }\n\n\n      dynamic \"facebook_v2\" {\n        for_each = auth_settings_v2.value.facebook_v2 != null ? [auth_settings_v2.value.facebook_v2] : []\n\n        content {\n          graph_api_version       = facebook_v2.value.graph_api_version\n          login_scopes            = toset(facebook_v2.value.login_scopes)\n          app_id                  = facebook_v2_value.app_id\n          app_secret_setting_name = facebook_v2.value.app_secret_setting_name\n        }\n      }\n\n      dynamic \"github_v2\" {\n        for_each = auth_settings_v2.value.github_v2 != null ? [auth_settings_v2.value.github_v2] : []\n\n        content {\n          client_id                  = github_v2.value.client_id\n          client_secret_setting_name = github_v2.value.client_secret_setting_name\n          login_scopes               = toset(github_v2.value.login_scopes)\n        }\n      }\n\n      dynamic \"google_v2\" {\n        for_each = auth_settings_v2.value.google_v2 != null ? [auth_settings_v2.value.google_v2] : []\n\n        content {\n          client_id                  = google_v2.value.client_id\n          client_secret_setting_name = google_v2.value.client_secret_setting_name\n          allowed_audiences          = toset(google_v2.value.allowed_audiences)\n          login_scopes               = toset(google_v2.value.login_scopes)\n        }\n      }\n\n      dynamic \"microsoft_v2\" {\n        for_each = auth_settings_v2.value.microsoft_v2 != null ? [auth_settings_v2.value.microsoft_v2] : []\n\n        content {\n          client_id                  = microsoft_v2.value.client_id\n          client_secret_setting_name = microsoft_v2.value.client_secret_setting_name\n          allowed_audiences          = toset(microsoft_v2.value.allowed_audiences)\n          login_scopes               = toset(microsoft_v2.value.login_scopes)\n        }\n      }\n\n      dynamic \"twitter_v2\" {\n        for_each = auth_settings_v2.value.twitter_v2 != null ? [auth_settings_v2.value.twitter_v2] : []\n        content {\n          consumer_key                 = twitter_v2.value.consumer_key\n          consumer_secret_setting_name = twitter_v2.value.consumer_secret_setting_name\n        }\n      }\n\n      dynamic \"login\" {\n        for_each = auth_settings_v2.value.login != null ? [auth_settings_v2.value.login] : []\n\n        content {\n          logout_endpoint                   = login.value.logout_endpoint\n          token_store_enabled               = login.value.token_store_enabled\n          token_refresh_extension_time      = login.value.token_refresh_extension_time\n          token_store_path                  = login.value.token_store_path\n          token_store_sas_setting_name      = login.value.token_store_sas_setting_name\n          preserve_url_fragments_for_logins = login.value.preserve_url_fragments_for_logins\n          allowed_external_redirect_urls    = toset(login.value.allowed_external_redirect_urls)\n          cookie_expiration_convention      = login.value.cookie_expiration_convention\n          cookie_expiration_time            = login.value.cookie_expiration_time\n          validate_nonce                    = login.value.validate_nonce\n          nonce_expiration_time             = login.value.nonce_expiration_time\n        }\n      }\n    }\n  }\n\n\n  dynamic \"site_config\" {\n    for_each = each.value.site_config != null ? [each.value.site_config] : []\n\n    content {\n      always_on                                     = site_config.value.always_on\n      api_definition_url                            = site_config.value.api_definition_url\n      api_management_api_id                         = site_config.value.api_management_api_id\n      app_command_line                              = site_config.value.app_command_line\n      application_insights_connection_string        = site_config.value.application_insights_connection_string\n      application_insights_key                      = site_config.value.application_insights_key\n      container_registry_managed_identity_client_id = site_config.value.container_registry_managed_identity_client_id\n      container_registry_use_managed_identity       = site_config.value.container_registry_use_managed_identity\n      elastic_instance_minimum                      = site_config.value.elastic_instance_minimum\n      ftps_state                                    = site_config.value.ftps_state\n      health_check_path                             = site_config.value.health_check_path\n      health_check_eviction_time_in_min             = site_config.value.health_check_eviction_time_in_min\n      http2_enabled                                 = site_config.value.http2_enabled\n      load_balancing_mode                           = site_config.value.load_balancing_mode\n      managed_pipeline_mode                         = site_config.value.managed_pipeline_mode\n      minimum_tls_version                           = site_config.value.minimum_tls_version\n      pre_warmed_instance_count                     = site_config.value.pre_warmed_instance_count\n      remote_debugging_enabled                      = site_config.value.remote_debugging_enabled\n      remote_debugging_version                      = site_config.value.remote_debugging_version\n      runtime_scale_monitoring_enabled              = site_config.value.runtime_scale_monitoring_enabled\n      scm_minimum_tls_version                       = site_config.value.scm_minimum_tls_version\n      scm_use_main_ip_restriction                   = site_config.value.scm_use_main_ip_restriction\n      use_32_bit_worker                             = site_config.value.use_32_bit_worker\n      app_scale_limit                               = site_config.value.app_scale_limit\n      websockets_enabled                            = site_config.value.websockets_enabled\n      vnet_route_all_enabled                        = site_config.value.vnet_route_all_enabled\n      worker_count                                  = site_config.value.worker_count\n      default_documents                             = toset(site_config.value.default_documents)\n\n      dynamic \"application_stack\" {\n        for_each = site_config.value.application_stack != null ? [site_config.value.application_stack] : []\n        content {\n          java_version            = application_stack.value.java_version\n          dotnet_version          = application_stack.value.dotnet_version\n          node_version            = application_stack.value.node_version\n          python_version          = application_stack.value.python_version\n          powershell_core_version = application_stack.value.powershell_core_version\n          use_custom_runtime      = application_stack.value.use_custom_runtime\n\n          dynamic \"docker\" {\n            for_each = application_stack.value.docker != null ? application_stack.value.docker : []\n            content {\n              registry_url      = docker.value.registry_url\n              registry_username = docker.value.registry_username\n              registry_password = docker.value.registry_password\n              image_name        = docker.value.image_name\n              image_tag         = docker.value.image_tag\n            }\n          }\n        }\n      }\n\n      dynamic \"app_service_logs\" {\n        for_each = site_config.value.app_service_logs != null ? [site_config.value.app_service_logs] : []\n        content {\n          disk_quota_mb         = app_service_logs.value.disk_quota_mb\n          retention_period_days = app_service_logs.value.retention_period_days\n        }\n      }\n\n      dynamic \"cors\" {\n        for_each = site_config.value.cors != null ? [site_config.value.cors] : []\n        content {\n          allowed_origins     = cors.value.allowed_origins\n          support_credentials = cors.value.support_credentials\n        }\n      }\n\n      dynamic \"ip_restriction\" {\n        for_each = site_config.value.ip_restriction != null ? [site_config.value.ip_restriction] : []\n\n        content {\n          ip_address                = ip_restriction.value.ip_address\n          service_tag               = ip_restriction.value.service_tag\n          virtual_network_subnet_id = ip_restriction.value.virtual_network_subnet_id\n          name                      = ip_restriction.value.name\n          priority                  = ip_restriction.value.priority\n          action                    = ip_restriction.value.action\n\n          dynamic \"headers\" {\n            for_each = ip_restriction.value.headers != null ? [ip_restriction.value.headers] : []\n\n            content {\n              x_azure_fdid      = headers.value.x_azure_fdid\n              x_fd_health_probe = headers.value.x_fd_health_prob\n              x_forwarded_for   = headers.value.x_forwarded_for\n              x_forwarded_host  = headers.value.x_forwarded_host\n            }\n          }\n        }\n      }\n\n      dynamic \"scm_ip_restriction\" {\n        for_each = site_config.value.scm_ip_restriction != null ? [site_config.value.scm_ip_restriction] : []\n\n        content {\n          ip_address                = scm_ip_restriction.value.ip_address\n          service_tag               = scm_ip_restriction.value.service_tag\n          virtual_network_subnet_id = scm_ip_restriction.value.virtual_network_subnet_id\n          name                      = scm_ip_restriction.value.name\n          priority                  = scm_ip_restriction.value.priority\n          action                    = scm_ip_restriction.value.action\n\n          dynamic \"headers\" {\n            for_each = scm_ip_restriction.value.headers != null ? [scm_ip_restriction.value.headers] : []\n\n            content {\n              x_azure_fdid      = headers.value.x_azure_fdid\n              x_fd_health_probe = headers.value.x_fd_health_prob\n              x_forwarded_for   = headers.value.x_forwarded_for\n              x_forwarded_host  = headers.value.x_forwarded_host\n            }\n          }\n        }\n      }\n    }\n  }\n}\n```\n## Requirements\n\nNo requirements.\n\n## Providers\n\n| Name | Version |\n|------|---------|\n| \u003ca name=\"provider_azurerm\"\u003e\u003c/a\u003e [azurerm](#provider\\_azurerm) | n/a |\n\n## Modules\n\nNo modules.\n\n## Resources\n\n| Name | Type |\n|------|------|\n| [azurerm_application_insights.app_insights_workspace](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/application_insights) | resource |\n| [azurerm_linux_function_app.function_app](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/linux_function_app) | resource |\n| [azurerm_service_plan.service_plan](https://registry.terraform.io/providers/hashicorp/azurerm/latest/docs/resources/service_plan) | resource |\n\n## Inputs\n\n| Name | Description | Type | Default | Required |\n|------|-------------|------|---------|:--------:|\n| \u003ca name=\"input_linux_function_apps\"\u003e\u003c/a\u003e [linux\\_function\\_apps](#input\\_linux\\_function\\_apps) | List of Azure Linux Function Apps configurations | \u003cpre\u003elist(object({\u003cbr\u003e    name                                           = string\u003cbr\u003e    rg_name                                        = string\u003cbr\u003e    location                                       = string\u003cbr\u003e    create_new_app_service_plan                    = optional(bool, true)\u003cbr\u003e    app_service_plan_name                          = optional(string)\u003cbr\u003e    service_plan_id                                = optional(string)\u003cbr\u003e    os_type                                        = optional(string)\u003cbr\u003e    sku_name                                       = string\u003cbr\u003e    app_settings                                   = map(string)\u003cbr\u003e    https_only                                     = optional(bool)\u003cbr\u003e    tags                                           = optional(map(string))\u003cbr\u003e    builtin_logging_enabled                        = optional(bool)\u003cbr\u003e    client_certificate_enabled                     = optional(bool)\u003cbr\u003e    client_certificate_exclusion_paths             = optional(string)\u003cbr\u003e    client_certificate_mode                        = optional(string)\u003cbr\u003e    daily_memory_time_quota                        = optional(number)\u003cbr\u003e    enabled                                        = optional(bool, true)\u003cbr\u003e    functions_extension_version                    = optional(string, \"~4\")\u003cbr\u003e    content_share_force_disabled                   = optional(bool)\u003cbr\u003e    identity_type                                  = optional(string)\u003cbr\u003e    ftp_publish_basic_authentication_enable        = optional(bool, false)\u003cbr\u003e    public_network_access_enabled                  = optional(bool, true)\u003cbr\u003e    key_vault_reference_identity_id                = optional(string)\u003cbr\u003e    virtual_network_subnet_id                      = optional(string)\u003cbr\u003e    webdeploy_publish_basic_authentication_enabled = optional(bool, false)\u003cbr\u003e    zip_deploy_file                                = optional(string)\u003cbr\u003e\u003cbr\u003e    identity_ids                                       = optional(list(string))\u003cbr\u003e    storage_account_name                               = optional(string)\u003cbr\u003e    storage_account_access_key                         = optional(string)\u003cbr\u003e    storage_key_vault_secret_id                        = optional(string)\u003cbr\u003e    storage_uses_managed_identity                      = optional(bool)\u003cbr\u003e    create_new_app_insights                            = optional(bool, false)\u003cbr\u003e    workspace_id                                       = optional(string)\u003cbr\u003e    app_insights_name                                  = optional(string)\u003cbr\u003e    app_insights_type                                  = optional(string, \"Web\")\u003cbr\u003e    app_insights_daily_cap_in_gb                       = optional(number)\u003cbr\u003e    app_insights_daily_data_cap_notifications_disabled = optional(bool, false)\u003cbr\u003e    app_insights_internet_ingestion_enabled            = optional(bool)\u003cbr\u003e    app_insights_internet_query_enabled                = optional(bool)\u003cbr\u003e    app_insights_local_authentication_disabled         = optional(bool, true)\u003cbr\u003e    app_insights_force_customer_storage_for_profile    = optional(bool, false)\u003cbr\u003e    app_insights_sampling_percentage                   = optional(number, 100)\u003cbr\u003e    storage_account = optional(object({\u003cbr\u003e      access_key   = string\u003cbr\u003e      account_name = string\u003cbr\u003e      name         = string\u003cbr\u003e      share_name   = string\u003cbr\u003e      type         = string\u003cbr\u003e      mount_path   = optional(string)\u003cbr\u003e    }))\u003cbr\u003e    sticky_settings = optional(object({\u003cbr\u003e      app_setting_names       = optional(list(string))\u003cbr\u003e      connection_string_names = optional(list(string))\u003cbr\u003e    }))\u003cbr\u003e    connection_string = optional(object({\u003cbr\u003e      name  = optional(string)\u003cbr\u003e      type  = optional(string)\u003cbr\u003e      value = optional(string)\u003cbr\u003e    }))\u003cbr\u003e    backup = optional(object({\u003cbr\u003e      name                = optional(string)\u003cbr\u003e      enabled             = optional(bool)\u003cbr\u003e      storage_account_url = optional(string)\u003cbr\u003e      schedule = optional(object({\u003cbr\u003e        frequency_interval       = optional(string)\u003cbr\u003e        frequency_unit           = optional(string)\u003cbr\u003e        keep_at_least_one_backup = optional(bool)\u003cbr\u003e        retention_period_days    = optional(number)\u003cbr\u003e        start_time               = optional(string)\u003cbr\u003e      }))\u003cbr\u003e    }))\u003cbr\u003e    auth_settings_v2 = optional(object({\u003cbr\u003e      auth_enabled                            = optional(bool)\u003cbr\u003e      runtime_version                         = optional(string)\u003cbr\u003e      config_file_path                        = optional(string)\u003cbr\u003e      require_authentication                  = optional(bool)\u003cbr\u003e      unauthenticated_action                  = optional(string)\u003cbr\u003e      default_provider                        = optional(string)\u003cbr\u003e      excluded_paths                          = optional(list(string))\u003cbr\u003e      require_https                           = optional(bool)\u003cbr\u003e      http_route_api_prefix                   = optional(string)\u003cbr\u003e      forward_proxy_convention                = optional(string)\u003cbr\u003e      forward_proxy_custom_host_header_name   = optional(string)\u003cbr\u003e      forward_proxy_custom_scheme_header_name = optional(string)\u003cbr\u003e      apple_v2 = optional(object({\u003cbr\u003e        client_id                  = string\u003cbr\u003e        client_secret_setting_name = string\u003cbr\u003e        login_scopes               = list(string)\u003cbr\u003e      }))\u003cbr\u003e      active_directory_v2 = optional(object({\u003cbr\u003e        client_id                            = string\u003cbr\u003e        tenant_auth_endpoint                 = string\u003cbr\u003e        client_secret_setting_name           = optional(string)\u003cbr\u003e        client_secret_certificate_thumbprint = optional(string)\u003cbr\u003e        jwt_allowed_groups                   = optional(list(string))\u003cbr\u003e        jwt_allowed_client_applications      = optional(list(string))\u003cbr\u003e        www_authentication_disabled          = optional(bool)\u003cbr\u003e        allowed_groups                       = optional(list(string))\u003cbr\u003e        allowed_identities                   = optional(list(string))\u003cbr\u003e        allowed_applications                 = optional(list(string))\u003cbr\u003e        login_parameters                     = optional(map(string))\u003cbr\u003e        allowed_audiences                    = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      azure_static_web_app_v2 = optional(object({\u003cbr\u003e        client_id = string\u003cbr\u003e      }))\u003cbr\u003e      custom_oidc_v2 = optional(list(object({\u003cbr\u003e        name                          = string\u003cbr\u003e        client_id                     = string\u003cbr\u003e        openid_configuration_endpoint = string\u003cbr\u003e        name_claim_type               = optional(string)\u003cbr\u003e        scopes                        = optional(list(string))\u003cbr\u003e        client_credential_method      = string\u003cbr\u003e        client_secret_setting_name    = string\u003cbr\u003e        authorisation_endpoint        = string\u003cbr\u003e        token_endpoint                = string\u003cbr\u003e        issuer_endpoint               = string\u003cbr\u003e        certification_uri             = string\u003cbr\u003e      })))\u003cbr\u003e      facebook_v2 = optional(object({\u003cbr\u003e        app_id                  = string\u003cbr\u003e        app_secret_setting_name = string\u003cbr\u003e        graph_api_version       = optional(string)\u003cbr\u003e        login_scopes            = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      github_v2 = optional(object({\u003cbr\u003e        client_id                  = string\u003cbr\u003e        client_secret_setting_name = string\u003cbr\u003e        login_scopes               = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      google_v2 = optional(object({\u003cbr\u003e        client_id                  = string\u003cbr\u003e        client_secret_setting_name = string\u003cbr\u003e        allowed_audiences          = optional(list(string))\u003cbr\u003e        login_scopes               = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      microsoft_v2 = optional(object({\u003cbr\u003e        client_id                  = string\u003cbr\u003e        client_secret_setting_name = string\u003cbr\u003e        allowed_audiences          = optional(list(string))\u003cbr\u003e        login_scopes               = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      twitter_v2 = optional(object({\u003cbr\u003e        consumer_key                 = string\u003cbr\u003e        consumer_secret_setting_name = string\u003cbr\u003e      }))\u003cbr\u003e      login = optional(object({\u003cbr\u003e        logout_endpoint                   = optional(string)\u003cbr\u003e        token_store_enabled               = optional(bool)\u003cbr\u003e        token_refresh_extension_time      = optional(number)\u003cbr\u003e        token_store_path                  = optional(string)\u003cbr\u003e        token_store_sas_setting_name      = optional(string)\u003cbr\u003e        preserve_url_fragments_for_logins = optional(bool)\u003cbr\u003e        allowed_external_redirect_urls    = optional(list(string))\u003cbr\u003e        cookie_expiration_convention      = optional(string)\u003cbr\u003e        cookie_expiration_time            = optional(string)\u003cbr\u003e        validate_nonce                    = optional(bool)\u003cbr\u003e        nonce_expiration_time             = optional(string)\u003cbr\u003e      }))\u003cbr\u003e    }))\u003cbr\u003e    auth_settings = optional(object({\u003cbr\u003e      enabled                        = optional(bool)\u003cbr\u003e      additional_login_parameters    = optional(map(string))\u003cbr\u003e      allowed_external_redirect_urls = optional(list(string))\u003cbr\u003e      default_provider               = optional(string)\u003cbr\u003e      issuer                         = optional(string)\u003cbr\u003e      runtime_version                = optional(string)\u003cbr\u003e      token_refresh_extension_hours  = optional(number)\u003cbr\u003e      token_store_enabled            = optional(bool)\u003cbr\u003e      unauthenticated_client_action  = optional(string)\u003cbr\u003e      active_directory = optional(object({\u003cbr\u003e        client_id         = optional(string)\u003cbr\u003e        client_secret     = optional(string)\u003cbr\u003e        allowed_audiences = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      facebook = optional(object({\u003cbr\u003e        app_id       = optional(string)\u003cbr\u003e        app_secret   = optional(string)\u003cbr\u003e        oauth_scopes = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      google = optional(object({\u003cbr\u003e        client_id     = optional(string)\u003cbr\u003e        client_secret = optional(string)\u003cbr\u003e        oauth_scopes  = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      microsoft = optional(object({\u003cbr\u003e        client_id     = optional(string)\u003cbr\u003e        client_secret = optional(string)\u003cbr\u003e        oauth_scopes  = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e      twitter = optional(object({\u003cbr\u003e        consumer_key    = optional(string)\u003cbr\u003e        consumer_secret = optional(string)\u003cbr\u003e      }))\u003cbr\u003e      github = optional(object({\u003cbr\u003e        client_id                  = optional(string)\u003cbr\u003e        client_secret              = optional(string)\u003cbr\u003e        client_secret_setting_name = optional(string)\u003cbr\u003e        oauth_scopes               = optional(list(string))\u003cbr\u003e      }))\u003cbr\u003e    }))\u003cbr\u003e    site_config = optional(object({\u003cbr\u003e      always_on                                     = optional(bool)\u003cbr\u003e      api_definition_url                            = optional(string)\u003cbr\u003e      api_management_api_id                         = optional(string)\u003cbr\u003e      app_command_line                              = optional(string)\u003cbr\u003e      application_insights_connection_string        = optional(string)\u003cbr\u003e      application_insights_key                      = optional(string)\u003cbr\u003e      container_registry_managed_identity_client_id = optional(string)\u003cbr\u003e      container_registry_use_managed_identity       = optional(bool)\u003cbr\u003e      elastic_instance_minimum                      = optional(number)\u003cbr\u003e      ftps_state                                    = optional(string)\u003cbr\u003e      health_check_path                             = optional(string)\u003cbr\u003e      health_check_eviction_time_in_min             = optional(number)\u003cbr\u003e      http2_enabled                                 = optional(bool)\u003cbr\u003e      load_balancing_mode                           = optional(string)\u003cbr\u003e      managed_pipeline_mode                         = optional(string)\u003cbr\u003e      minimum_tls_version                           = optional(string)\u003cbr\u003e      pre_warmed_instance_count                     = optional(number)\u003cbr\u003e      remote_debugging_enabled                      = optional(bool)\u003cbr\u003e      remote_debugging_version                      = optional(string)\u003cbr\u003e      runtime_scale_monitoring_enabled              = optional(bool)\u003cbr\u003e      scm_minimum_tls_version                       = optional(string)\u003cbr\u003e      scm_use_main_ip_restriction                   = optional(bool)\u003cbr\u003e      use_32_bit_worker                             = optional(bool)\u003cbr\u003e      app_scale_limit                               = optional(number)\u003cbr\u003e      websockets_enabled                            = optional(bool)\u003cbr\u003e      vnet_route_all_enabled                        = optional(bool)\u003cbr\u003e      worker_count                                  = optional(number)\u003cbr\u003e      default_documents                             = optional(list(string))\u003cbr\u003e      application_stack = optional(object({\u003cbr\u003e        java_version                = optional(string)\u003cbr\u003e        dotnet_version              = optional(string)\u003cbr\u003e        use_dotnet_isolated_runtime = optional(bool)\u003cbr\u003e        node_version                = optional(string)\u003cbr\u003e        python_version              = optional(string)\u003cbr\u003e        powershell_core_version     = optional(string)\u003cbr\u003e        use_custom_runtime          = optional(bool)\u003cbr\u003e        docker = optional(list(object({\u003cbr\u003e          registry_url      = optional(string)\u003cbr\u003e          registry_username = optional(string)\u003cbr\u003e          registry_password = optional(string)\u003cbr\u003e          image_name        = optional(string)\u003cbr\u003e          image_tag         = optional(string)\u003cbr\u003e        })))\u003cbr\u003e      }))\u003cbr\u003e      app_service_logs = optional(object({\u003cbr\u003e        disk_quota_mb         = optional(number)\u003cbr\u003e        retention_period_days = optional(number)\u003cbr\u003e      }))\u003cbr\u003e      cors = optional(object({\u003cbr\u003e        allowed_origins     = optional(list(string))\u003cbr\u003e        support_credentials = optional(bool)\u003cbr\u003e      }))\u003cbr\u003e      ip_restriction = optional(list(object({\u003cbr\u003e        ip_address                = optional(string)\u003cbr\u003e        service_tag               = optional(string)\u003cbr\u003e        virtual_network_subnet_id = optional(string)\u003cbr\u003e        name                      = optional(string)\u003cbr\u003e        priority                  = optional(number)\u003cbr\u003e        action                    = optional(string)\u003cbr\u003e        headers = optional(object({\u003cbr\u003e          x_azure_fdid      = optional(string)\u003cbr\u003e          x_fd_health_probe = optional(string)\u003cbr\u003e          x_forwarded_for   = optional(string)\u003cbr\u003e          x_forwarded_host  = optional(string)\u003cbr\u003e        }))\u003cbr\u003e      })))\u003cbr\u003e      scm_ip_restriction = optional(list(object({\u003cbr\u003e        ip_address                = optional(string)\u003cbr\u003e        service_tag               = optional(string)\u003cbr\u003e        virtual_network_subnet_id = optional(string)\u003cbr\u003e        name                      = optional(string)\u003cbr\u003e        priority                  = optional(number)\u003cbr\u003e        action                    = optional(string)\u003cbr\u003e        headers = optional(object({\u003cbr\u003e          x_azure_fdid      = optional(string)\u003cbr\u003e          x_fd_health_probe = optional(string)\u003cbr\u003e          x_forwarded_for   = optional(string)\u003cbr\u003e          x_forwarded_host  = optional(string)\u003cbr\u003e        }))\u003cbr\u003e      })))\u003cbr\u003e    }))\u003cbr\u003e  }))\u003c/pre\u003e | `[]` | no |\n\n## Outputs\n\n| Name | Description |\n|------|-------------|\n| \u003ca name=\"output_function_app_identities\"\u003e\u003c/a\u003e [function\\_app\\_identities](#output\\_function\\_app\\_identities) | The identities of the Storage Accounts. |\n| \u003ca name=\"output_function_app_names\"\u003e\u003c/a\u003e [function\\_app\\_names](#output\\_function\\_app\\_names) | The default name of the Linux Function Apps. |\n| \u003ca name=\"output_function_apps_custom_domain_verification_id\"\u003e\u003c/a\u003e [function\\_apps\\_custom\\_domain\\_verification\\_id](#output\\_function\\_apps\\_custom\\_domain\\_verification\\_id) | The custom domain verification IDs of the Linux Function Apps. |\n| \u003ca name=\"output_function_apps_default_hostnames\"\u003e\u003c/a\u003e [function\\_apps\\_default\\_hostnames](#output\\_function\\_apps\\_default\\_hostnames) | The default hostnames of the Linux Function Apps. |\n| \u003ca name=\"output_function_apps_outbound_ip_addresses\"\u003e\u003c/a\u003e [function\\_apps\\_outbound\\_ip\\_addresses](#output\\_function\\_apps\\_outbound\\_ip\\_addresses) | The outbound IP addresses of the Linux Function Apps. |\n| \u003ca name=\"output_function_apps_possible_outbound_ip_addresses\"\u003e\u003c/a\u003e [function\\_apps\\_possible\\_outbound\\_ip\\_addresses](#output\\_function\\_apps\\_possible\\_outbound\\_ip\\_addresses) | The possible outbound IP addresses of the Linux Function Apps. |\n| \u003ca name=\"output_function_apps_site_credentials\"\u003e\u003c/a\u003e [function\\_apps\\_site\\_credentials](#output\\_function\\_apps\\_site\\_credentials) | The site credentials for the Linux Function Apps. |\n| \u003ca name=\"output_linux_function_apps_ids\"\u003e\u003c/a\u003e [linux\\_function\\_apps\\_ids](#output\\_linux\\_function\\_apps\\_ids) | The IDs of the Linux Function Apps. |\n| \u003ca name=\"output_service_plans_ids\"\u003e\u003c/a\u003e [service\\_plans\\_ids](#output\\_service\\_plans\\_ids) | The IDs of the Service Plans. |\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibre-devops%2Fterraform-azurerm-linux-function-app","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flibre-devops%2Fterraform-azurerm-linux-function-app","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flibre-devops%2Fterraform-azurerm-linux-function-app/lists"}