You would not think this would be super difficult or, at the least Terraform’s documentation would cover such a common use case. But, I found it to be false, so I figured I would share the necessary changes needed.
First, some background – I am using a Terraform script to deploy a variety of Azure resources to support an internal bootcamp I will be giving at West Monroe in August.
Here is the completed Terraform block to deploy the V2 Azure Function:
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
resource "azurerm_function_app" "main" { | |
name = "${var.resource-prefix}-analyticsapp" | |
location = "${azurerm_resource_group.main.location}" | |
resource_group_name = "${azurerm_resource_group.main.name}" | |
app_service_plan_id = "${azurerm_app_service_plan.main.id}" | |
storage_connection_string = "${azurerm_storage_account.main.primary_connection_string}" | |
version = "~2" | |
app_settings { | |
FUNCTIONS_EXTENSION_VERSION = "~2" | |
FUNCTIONS_WORKER_RUNTIME = "dotnet" | |
} | |
site_config { | |
always_on = true | |
linux_fx_version = "DOCKER|mcr.microsoft.com/azure-functions/dotnet:2.0-appservice" | |
use_32_bit_worker_process = true | |
} | |
} |
This isnt something that is covered in the documentation that, in addition to specifying version
we also need to include the linux_fx_version
in site_config
.
I do not know if this is necessary if you use a Windows based App Service Plan (I am using Linux and sharing it with my App Service).
I found immense frustration in figuring this out and found myself annoyed that I could not find anything by V1 examples in the Terraform docs.
Very nice blog you hhave here
LikeLike