I have been trying to figure out a way to prepare a terraform template for my app service/az function where I can connect it to application Insight while creating them through Terraform. Well the it worked, BUT the application Insight shows

Migrate this resource to Workspace-based Application Insights to gain support for all of the capabilities of Log Analytics, including Customer-Managed Keys and Commitment Tiers. Click here to learn more and migrate in a few clicks.

How do I acheive it from terraform? As from the documentation page of terraform there is no mention of such setup. Appreciate you help on this. Here is the terraform code for az-function

 resource "azurerm_linux_function_app" "t_funcapp" { name = "t-function-app" location = local.resource_location resource_group_name = local.resource_group_name service_plan_id = azurerm_service_plan.t_app_service_plan.id storage_account_name = azurerm_storage_account.t_funcstorage.name storage_account_access_key = azurerm_storage_account.t_funcstorage.primary_access_key site_config { application_stack { java_version = "11" } remote_debugging_enabled = false ftps_state = "AllAllowed" } app_settings = { APPINSIGHTS_INSTRUMENTATIONKEY = "${azurerm_application_insights.t_appinsights.instrumentation_key}" } depends_on = [ azurerm_resource_group.t_rg, azurerm_service_plan.t_app_service_plan, azurerm_storage_account.t_funcstorage, azurerm_application_insights.t_appinsights ] } 

Here is the terraform code for app insight

resource "azurerm_application_insights" "t_appinsights" { name = "t-appinsights" location = local.resource_location resource_group_name = local.resource_group_name application_type = "web" depends_on = [ azurerm_log_analytics_workspace.t_workspace ] } output "instrumentation_key" { value = azurerm_application_insights.t_appinsights.instrumentation_key } output "app_id" { value = azurerm_application_insights.t_appinsights.app_id } 
1

1 Answer

You must create a Log Analytics Workspace and add it to your Application Insights.

For example

resource "azurerm_log_analytics_workspace" "example" { name = "workspace-test" location = local.resource_location resource_group_name = local.resource_group_name sku = "PerGB2018" retention_in_days = 30 } resource "azurerm_application_insights" "t_appinsights" { name = "t-appinsights" location = local.resource_location resource_group_name = local.resource_group_name workspace_id = azurerm_log_analytics_workspace.example.id application_type = "web" } output "instrumentation_key" { value = azurerm_application_insights.t_appinsights.instrumentation_key } output "app_id" { value = azurerm_application_insights.t_appinsights.app_id } 

Hope this helps!

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.