【问题标题】:Best practice to update the Application Insights instrumentation key for classic Desktop apps为经典桌面应用更新 Application Insights 检测密钥的最佳实践
【发布时间】:2018-01-12 15:21:05
【问题描述】:

问题...

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

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

目前的解决方案

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

这行得通。但是……

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

感谢任何想法

垫子

【问题讨论】:

  • 您是否尝试过联系支持人员?您可能无法恢复已删除的 AI 资源,具体取决于它已经存在多长时间,或者您可能无法将旧 ikey 换成新应用程序。我会先咨询支持人员。

标签: c# wpf azure-application-insights


【解决方案1】:

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

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

【讨论】:

  • 感谢您的回复。实际上它已经是一个配置参数;-) 我只是为我的问题简化了一些事情。无论如何,不​​可能联系到所有客户来手动更新检测密钥。或者你有没有收到来自谷歌的电子邮件来更新 chrome 中的一些配置文件,以便他们可以从你那里收集更多数据?这会有点尴尬......
  • 另一方面,如果他们在代码中包含了能够使用浏览器所需的过期密钥,那将同样奇怪。这就是为什么我建议存储远程连接到 Azure 所需的实际密钥。
猜你喜欢
  • 1970-01-01
  • 2017-01-31
  • 2020-02-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-07-30
  • 2011-09-23
  • 1970-01-01
相关资源
最近更新 更多