I have an Azure function that I need to run in an Elastic Premium plan. After deployed I see the following error:
Azure Functions runtime is unreachable
I've tried to solve it following Microsoft documentation, no luck.
Here is some thoughts about my tries :
We checked the Storage account is created
The Function's subnet already has the service endpoint for the storage account
Vnet integration is already enabled in the Function and it (subnet) is already added to the Storage firewall
We added the required properties in the Function settings:
- WEBSITE_CONTENTAZUREFILECONNECTIONSTRING = dynamic created (connection string to the Storage account)
 - WEBSITE_CONTENTOVERVNET = 1
 - WEBSITE_CONTENTSHARE = dynamic created
 - WEBSITE_VNET_ROUTE_ALL = 1
 
Here is the documentation link.
https://learn.microsoft.com/en-us/azure/azure-functions/functions-recover-storage-account
Everything was working fine when I was using the Premium (P1v2) and the error begins when I moved to Elastic (EP1).
I am deploying it using Terraform.
Here is a TF code example we are using to deploy
locals {
    app_settings = {
    FUNCTIONS_WORKER_RUNTIME                                            = "python"
    FUNCTION_APP_EDIT_MODE                                              = "readonly"
    WEBSITE_VNET_ROUTE_ALL                                              = "1"
    WEBSITE_CONTENTOVERVNET                                             = "1"
  }
}
module "az_service_plan_sample" {
  source = "source module"
  serviceplan_name    = "planname"
  resource_group_name = "RG Name" 
  region              = "East US 2" 
  tier                = "ElasticPremium"
  size                = "EP1"
  kind                = "elastic"
  capacity            = 40
  per_site_scaling    = false
  depends_on = [
    module.storage_account
  ]
}
module "storage_account_sample" {
  source                           = "source module"
  resource_group_name              = "RG Name"
  location                         = "East US 2"
  name                             = "saname"
  storage_account_replication_type = "GRS"
  subnet_ids                       = [subnet_ids]
}
module "sample" {
  source = "source module"
  azure_function_name             = "functionname"
  resource_group_name             = "RG Name"
  storage_account_name            = module.storage_account.storage-account-name
  storage_account_access_key      = module.storage_account.storage-account-primary-key
  region                          = "East US 2"
  subnet_id                       = subnet_ids
  app_service_id                  = module.az_service_plan.service_plan_id
  scope_role_storage_account      = module.storage_account.storage-account-id
  azure_function_version          = "~4"
  app_settings                    = local.app_settings
  key_vault_reference_identity_id = azurerm_user_assigned_identity.az_func.id
  pre_warmed_instance_count       = 2
  identity_type = "UserAssigned"
  user_assigned_identityies = [{
    id           = azurerm_user_assigned_identity.az_func.id
    principal_id = azurerm_user_assigned_identity.az_func.principal_id
  }]
  depends_on = [
    module.az_service_plan_sample,
    module.storage_account_sample,
    azurerm_user_assigned_identity.az_func,
  ]
}

