【问题标题】:How to enable Application Insights using Terraform?如何使用 Terraform 启用 Application Insights?
【发布时间】:2021-12-16 01:42:19
【问题描述】:

使用 Terraform,如何启用基于 Application Insights 代理的监控

Azure 应用服务 (.NET Core 2.x) Azure 函数应用 (.NET Core 2.x)

【问题讨论】:

    标签: terraform-provider-azure


    【解决方案1】:

    要为 Azure App Service (.NET Core 2.x) Azure Function App (.NET Core 2.x) 启用基于 Application Insights 代理的监控,您只需在应用中添加应用程序洞察环境变量设置如下:

    在 Azure 门户中:

    在地形中:

    app_settings = {
        "APPINSIGHTS_INSTRUMENTATIONKEY" = "${azurerm_application_insights.example.instrumentation_key}"
      }
    

    结果显示函数“functioninsighttest”的日志:

    【讨论】:

    • 这似乎也适用于 .NET Framework,正如您所料。
    • 这里是关于如何创建 azurerm_application_insights 资源的 Terraform 文档的链接:terraform.io/docs/providers/azurerm/r/application_insights.html
    • 使用此方法将 APP_SETTING 添加到应用服务时需要注意的一点是,Terraform 将破坏任何现有的 APP_SETTING 并将其替换为配置的任何内容。在某些情况下,这可能会破坏您的 CI/CD 工作流程。因此,我建议您是否要访问此值以使用 Key Vault + Key Vault References 之类的东西;这允许 Terraform 创建单独的机密(而不是整个 APP_SETTINGs 配置),因此不会删除可能破坏您的部署的现有配置。
    【解决方案2】:

    现在到 2021 年,显然有两种方法。

    第二个是:

    app_settings = {
        "MSDEPLOY_RENAME_LOCKED_FILES"                    = "1"
        "WEBSITE_HEALTHCHECK_MAXPINGFAILURES"             = "10"
        "ASPNETCORE_ENVIRONMENT"                          = "Development"
        "APPINSIGHTS_INSTRUMENTATIONKEY"                  = azurerm_application_insights.appi1.instrumentation_key
        "APPLICATIONINSIGHTS_CONNECTION_STRING"           = azurerm_application_insights.appi1.connection_string
        "APPINSIGHTS_PROFILERFEATURE_VERSION"             = "1.0.0"
        "APPINSIGHTS_SNAPSHOTFEATURE_VERSION"             = "1.0.0"
        "ApplicationInsightsAgent_EXTENSION_VERSION"      = "~2"
        "DiagnosticServices_EXTENSION_VERSION"            = "~3"
        "InstrumentationEngine_EXTENSION_VERSION"         = "disabled"
        "SnapshotDebugger_EXTENSION_VERSION"              = "disabled"
        "XDT_MicrosoftApplicationInsights_BaseExtensions" = "disabled"
        "XDT_MicrosoftApplicationInsights_Java"           = "1"
        "XDT_MicrosoftApplicationInsights_Mode"           = "recommended"
        "XDT_MicrosoftApplicationInsights_NodeJS"         = "1"
        "XDT_MicrosoftApplicationInsights_PreemptSdk"     = "disabled"
      }
    

    【讨论】:

    • 第一种方式是什么?我们需要提供这么多的配置吗? "APPINSIGHTS_INSTRUMENTATIONKEY" , "APPLICATIONINSIGHTS_CONNECTION_STRING" 这两个单独会不会配置连接? @Maciek
    猜你喜欢
    • 2021-07-16
    • 2021-06-12
    • 2022-08-20
    • 2022-12-11
    • 2017-07-24
    • 2019-06-11
    • 2022-12-14
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多