【问题标题】:Setting application insights instrumentation key while deploying在部署时设置应用程序洞察检测密钥
【发布时间】:2019-02-01 19:31:32
【问题描述】:

我们公司部署了多个 Web 服务,每个服务都具有三个环境 - 开发、暂存和生产。每个环境都有单独的资源组,其中包含服务的应用程序见解。获取每个环境的检测密钥并在 appsettings 文件中设置是一项繁琐的任务。相反,我们希望以某种方式自动化这个过程。

我们正在思考这个方向——我们将提供应用程序洞察名称作为占位符,在部署时从相应的资源组获取它后,该名称将被替换为实际的检测键。

我浏览了一些文章,但我无法做到。

请建议我一些相同的方法。

【问题讨论】:

  • 到目前为止你有什么尝试?
  • 我尝试从特定资源组中获取检测密钥,然后将其值替换为我在本地计算机上使用 Powershell 脚本收到的检测密钥。但我不知道这是否是正确的方法。 @evilSnobu
  • 您是否在构建服务器上使用 PowerShell 来部署您的东西?如果是,那么这就是正确的方法。
  • 是的,我在构建服务器上使用 PowerShell。所以,在这种情况下,我需要创建一个与我的 appsettings 关联的变量,它将在执行一些命令后替换该值...@evilSnobu
  • @evilSnobu 我也有同样的疑问!如果我不使用 PowerShell,你能建议我该怎么做吗?

标签: azure azure-application-insights


【解决方案1】:

TLDR:

  • 向您的 ARM 模板添加输出
  • 在版本中选择它作为变量
  • 使用它来更改您的配置

详情: 使用 ARM 模板部署 Application Insights 时,可以指定模板以将密钥作为输出变量 (https://docs.microsoft.com/en-us/azure/azure-resource-manager/resource-manager-templates-outputs) 返回。 ARM 模板部署任务可以提取这些输出并将其作为带有 JSON 对象的变量提供。更简单的方法是 ARM 输出扩展 (https://marketplace.visualstudio.com/items?itemName=keesschollaart.arm-outputs),您可以在其中直接将每个单独的输出作为变量提供。

之后,“部署 Service Fabric 应用程序”任务允许您在名称匹配时覆盖应用程序参数(不是非常自记录),或者您可以使用前面提到的标记化方法。有很多扩展可以做到这一点,包括:https://marketplace.visualstudio.com/items?itemName=qetza.replacetokens(我自己没试过)

【讨论】:

  • 会试一试的。
  • @HarshvardhanChittora 运气好吗?
  • 做了很久忘记回复了。是的,它对我有用。谢谢,@Henry!
  • 太棒了!不客气。如果这对您来说是正确的答案,也许您可​​以接受它作为答案?
猜你喜欢
  • 2018-12-14
  • 2022-01-04
  • 1970-01-01
  • 2021-08-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-06
  • 2020-08-04
相关资源
最近更新 更多