Terraform Azure Function App Deployment - Representing settings

I am trying to deploy an Azure Function App via Terraform

I am getting the following errors when trying to represent the Function App settings:

Error: azurerm_function_app.func-app-1: : invalid or unknown key: always_on

Error: azurerm_function_app.func-app-1: : invalid or unknown key: use_32_bit_worker_process

Error: azurerm_function_app.func-app-1: : invalid or unknown key: websockets_enabled

Below is the code i am using:

 resource "azurerm_function_app" "func-app-1" { name = "${var.func_app_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}" storage_connection_string = "${data.azurerm_storage_account.storage-account-1.primary_connection_string}" version = "~1" https_only = "true" enabled = "true" always_on = "true" use_32_bit_worker_process = "false" websockets_enabled = "true" client_affinity_enabled = "false" app_settings { "FUNCTIONS_EXTENSION_VERSION" = "~1" "KeyVaultURI" = “” "WEBSITE_NODE_DEFAULT_VERSION" = "6.5.0" } }

Any help would be appreciated

Thank you

3 Answers

You need to define app settings in variables.tf

resource "azurerm_function_app" "func-app-1" { name = "${var.func_app_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}" storage_connection_string = "${data.azurerm_storage_account.storage-account-1.primary_connection_string}" version = "~1" https_only = "true" enabled = "true" always_on = "true" use_32_bit_worker_process = "false" websockets_enabled = "true" client_affinity_enabled = "false" app_settings = "${var.app_settings}"
}

In variables.tf

variable "app_settings" { description = "A key-value pair of App Settings" default = { "FUNCTIONS_EXTENSION_VERSION" = "~1", "KeyVaultURI" = “”, "WEBSITE_NODE_DEFAULT_VERSION" = "6.5.0" }
}

Please define the same under site_config. Please refer below code. You can add further

resource "azurerm_function_app" "prod" { name = "${var.function_app_name}" location = "${azurerm_resource_group.prod.location}" resource_group_name = "${azurerm_resource_group.prod.name}" app_service_plan_id = "${azurerm_app_service_plan.prod.id}" storage_connection_string = "${azurerm_storage_account.prod.primary_connection_string}" version = "~2" app_settings = { APPINSIGHTS_INSTRUMENTATIONKEY = "${azurerm_application_insights.prod.instrumentation_key}" FUNCTIONS_EXTENSION_VERSION = "~2" FUNCTIONS_WORKER_RUNTIME = "dotnet" WEBSITE_CONTENTAZUREFILECONNECTIONSTRING = "${azurerm_storage_account.prod.primary_connection_string}" WEBSITE_CONTENTSHARE = "${var.storage_account_name}" } site_config { always_on = "true" }
}

I believe you need to add those values that are erroring in a site_config block as per the docs here :

1

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

You Might Also Like