从 Application Insights 检测密钥迁移到连接字符串
Application Insights 正在从全局引入终结点更改为使用连接字符串的区域终结点,这些连接字符串提供其他功能。
受此更改影响最大的方案:
防火墙例外或代理重定向 - 如果需要监视 Intranet Web 服务器,我们的早期解决方案会要求将各个服务终结点添加到配置中。 有关详细信息,请参阅是否可以监视 Intranet Web 服务器?。 连接字符串只需进行单个设置,简化了此工作,因此是一种更好的选择。 简单的前缀后缀修正,允许自动填充所有终结点并将其重定向到正确的服务。
主权云或混合云环境 - 用户可以将数据发送到定义的区域。 使用连接字符串,你可以定义 Intranet 服务器或混合云设置的终结点设置。
本文逐步讲解如何从检测密钥迁移到连接字符串。
先决条件
迁移
转到 Application Insights 资源的“概述”窗格。
找到右侧显示的连接字符串。
将鼠标指针悬停在连接字符串上,并选择“复制到剪贴板”图标。
按照如何设置连接字符串来配置 Application Insights SDK。
重要
不要同时使用连接字符串和检测密钥。 检测密钥集将取代连接字符串集,且可能导致遥测未显示在门户中。 请参阅缺少数据。
大规模迁移
使用环境变量将连接字符串传递到 Application Insights SDK 或代理。
若要通过环境变量设置连接字符串,请将连接字符串的值放到名为 APPLICATIONINSIGHTS_CONNECTION_STRING
的环境变量中。
可以在 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 Q&A
向答案论坛发布问题。