从 Application Insights 工具密钥迁移到连接字符串

Application Insights 正在从全局引入终结点更改为使用连接字符串的区域终结点,这些终结点提供 其他功能

受此更改影响最大的方案:

  • 防火墙例外或代理重定向 - 如果需要监视 Intranet Web 服务器,我们以前的解决方案要求向配置添加单个服务终结点。 有关详细信息,请参阅是否可以监视 Intranet Web 服务器?。 连接字符串通过将设置简化为单一的方式,降低了工作量,因此是一种更好的选择。 一个简单的前缀和后缀修订,可以自动填充并将所有终结点重定向到相应的服务。

  • 主权或混合云环境 - 用户可以将数据发送到定义的 Azure 政府区域。 使用连接字符串,你可以定义 Intranet 服务器或混合云设置的终结点设置。

本文逐步讲解如何从检测密钥迁移到连接字符串。

先决条件

迁移

屏幕截图显示 Application Insights 概述和连接字符串。

  1. 转到 Application Insights 资源的“概述”窗格。

  2. 查找右侧显示的 连接字符串

  3. 将鼠标指针悬停在连接字符串上,并选择“复制到剪贴板”图标。

  4. 按照 如何设置连接字符串来配置 Application Insights SDK。

重要

不要同时使用连接字符串和仪器密钥。 后一组替代另一组,并可能会导致遥测数据未显示在门户中。 查看 缺少的数据

大规模迁移

使用环境变量将连接字符串传递给 Application Insights SDK 或代理。

若要通过环境变量设置连接字符串,请将连接字符串的值放入名为 的环境变量中。

此过程可以在 Azure 部署中自动完成。 例如,以下 Azure 资源管理器模板演示如何在 Azure 应用服务部署中自动包含正确的连接字符串。 请务必包括应用所需的任何其他应用设置:

{
    "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#",
    "contentVersion": "1.0.0.0",
    "parameters": {
        "appServiceName": {
            "type": "string",
            "metadata": {
                "description": "Name of the App Services resource"
            }
        },
        "appServiceLocation": {
            "type": "string",
            "metadata": {
                "description": "Location to deploy the App Services resource"
            }
        },
        "appInsightsName": {
            "type": "string",
            "metadata": {
                "description": "Name of the existing Application Insights resource to use with this App Service. Expected to be in the same Resource Group."
            }
        }
    },
    "resources": [
        {
            "apiVersion": "2016-03-01",
            "name": "[parameters('appServiceName')]",
            "type": "microsoft.web/sites",
            "___location": "[parameters('appServiceLocation')]",
            "properties": {
                "siteConfig": {
                    "appSettings": [
                        {
                            "name": "APPLICATIONINSIGHTS_CONNECTION_STRING",
                            "value": "[reference(concat('microsoft.insights/components/', parameters('appInsightsName')), '2015-05-01').ConnectionString]"
                        }
                    ]
                },
                "name": "[parameters('appServiceName')]"
            }
        }
    ]
}

支持的 SDK 版本

  • .NET 和 .NET Core v2.12.0+
  • Java v2.5.1 和 Java 3.0+
  • JavaScript v2.3.0+
  • NodeJS v1.5.0+
  • Python v1.0.0+

故障排除

本部分提供故障排除解决方案。

警报:“转换为使用连接字符串进行数据引入”

按照本文中的 迁移步骤 解决此警报。

缺少数据

  • 确认使用的是 受支持的 SDK 版本。 如果在另一个 Azure 产品/服务中使用 Application Insights 集成,请查看其有关如何正确配置连接字符串的文档。
  • 请确认不要同时设置仪器密钥和连接字符串。 应从配置中删除仪器化密钥设置。
  • 确认连接字符串与 Azure 门户中提供的完全一样。

环境变量不起作用

如果在应用程序代码中对检测密钥进行硬编码,则编程可能在环境变量之前优先。

常见问题

本部分提供常见问题的解答。

我还能在哪里找到连接字符串?

连接字符串也包含在您的 Application Insights 资源的资源管理器资源属性中,字段名称为 ConnectionString

这如何影响自动检测?

自动检测场景不受影响。

是否可以将 Microsoft Entra 身份验证与自动化监测配合使用?

无法为自动检测方案启用Microsoft Entra 身份验证。 我们计划在未来解决这种限制。

全球和区域引入之间的区别是什么?

全局引入会将所有遥测数据发送到单个终结点,无论此数据将存储在何处。 区域引入允许为每个区域定义用于数据引入的特定终结点。 此功能可确保数据在处理和存储期间保留在特定区域中。

连接字符串如何影响计费?

计费不受影响。

Microsoft Q&A

将问题发布到 解答论坛