为经典桌面应用更新 Application Insights 检测密钥的最佳做法

Best practice to update the Application Insights instrumentation key for classic Desktop apps

问题...

我们有一个 "classic" windows 桌面应用程序 (WPF),它通过 Application Insights 发送遥测数据。检测密钥当前与应用程序一起部署。为了简单起见,我们假设它是硬编码的;-)

最近我们发现,如果我们在 Azure 中删除了一个 Application Insights 资源,它就无法恢复。因此检测密钥丢失。但是我们当然可以创建一个新实例。但是检测密钥不同。如何更改我们所有现有安装(本地)的检测密钥?

目前的解决方案

我们通过 azure functions 从 "the cloud" 获取检测密钥,而不是 "hardcode"。我们进行 REST 调用以获取检测密钥。显然现在这个函数的 URL 是硬编码的,而不是密钥本身。如果检测密钥发生变化,我们可以在此函数中更新它,而无需创建我们软件的新版本并更新我们所有的客户端。

这行得通。但是...

...有没有其他(更简单的)方法来处理这个问题?也许已经有一个内置方法,API,等等,可以做到这一点?

欢迎提出任何想法

垫子

从远程服务获取密钥或通过 REST API 获取密钥的解决方案是可行的。客户端应用程序还可以连接到某种遥测服务,后者又与 Azure 通信并存储密钥。然后客户端只需要知道 REST 服务的地址以及如何授权自己。

另一种解决方案是在应用程序配置文件中指定密钥并告诉最终用户自己更新配置文件,或者在检测密钥更改时提供更新的配置文件。这至少使您不必重建和重新部署二进制文件。显然,如果您将密钥硬编码到代码中,则需要执行此操作。