Azure中国区Application Insights:ConnectionString能否满足完整使用需求?
我在欧洲区使用Application Insights时,配置代码如下:
services.AddApplicationInsightsTelemetry(instrumentationKey);
切换到中国区后,按照文档修改端点配置始终无法生效,配置代码如下:
services.ConfigureTelemetryModule<QuickPulseTelemetryModule>((module, o) => module.QuickPulseServiceEndpoint="https://quickpulse.applicationinsights.azure.cn/QuickPulseService.svc"); services.AddSingleton(new ApplicationInsightsApplicationIdProvider() { ProfileQueryEndpoint = "https://dc.applicationinsights.azure.cn/api/profiles/{0}/appId" }); services.AddSingleton<ITelemetryChannel>(new ServerTelemetryChannel() { EndpointAddress = "https://dc.applicationinsights.azure.cn/v2/track" }); services.AddApplicationInsightsTelemetry("china instrumentation key");
之后尝试使用ConnectionString连接,未修改端点就成功了,但找不到中国区使用ConnectionString的相关说明,担心该方式会导致部分遥测或功能无法正常工作,因此想确认:仅使用ConnectionString是否足够支持中国区Application Insights的完整连接与使用?
补充信息:
- GitHub议题:弃用以仪表密钥为基础的SDK配置,转而使用连接字符串。
- 官方警告:不推荐修改端点,建议迁移到ConnectionString以简化配置,无需修改端点。
仅使用ConnectionString完全足够支持中国区Application Insights的完整连接与所有功能使用,核心依据如下:
官方指定的标准配置方案
官方已明确弃用基于仪表密钥的配置方式,将ConnectionString作为统一的首选配置方案。中国区资源生成的ConnectionString内置了所有必要的服务端点信息(包括遥测上报、实时指标查询等中国区专属地址),无需手动逐个配置端点。自动适配中国区服务地址
中国区Application Insights资源的ConnectionString会自动指向.azure.cn域名下的对应服务,SDK读取ConnectionString时会自动解析并使用这些正确的中国区端点,这也是你无需修改端点就能成功连接的原因。全功能覆盖无缺失
使用ConnectionString配置时,所有遥测类型(事件、指标、日志、依赖追踪等)以及配套功能(如实时指标QuickPulse、应用ID查询)都会自动适配中国区服务,不会出现功能失效或遥测丢失的问题。
你之前手动配置端点失效,大概率是因为SDK内部配置优先级问题(ConnectionString优先级高于手动端点配置),而使用ConnectionString完全规避了这类配置冲突,是当前中国区最可靠的配置方式。
内容的提问来源于stack exchange,提问作者Oleksandr

