【问题标题】:AspNetCore AppSettings Azure DevOpsAspNetCore AppSettings Azure DevOps
【发布时间】:2020-09-25 23:35:17
【问题描述】:

我们正在使用 Azure DevOps 部署我们的 ASP.NET Core REST API。我们目前将设置存储在 appSettings.json 中。我们有多种环境,例如 QA、PROD、DEV 等。根据最佳实践,我们知道我们根本不能在源代码控制中检查任何 appsettings 文件。这似乎是有道理的,我们正在进入秘密管理器。

但是,我们很想看看是否有一种方法可以从 appSettings.production.json 中获取我们的设置(我们有很多),例如并以某种方式将它们转换为 Azure DevOps 需要的格式? -设置“价值”似乎是格式。因为我们有复杂的 JSON 节点,所以我们现在别无选择,只能费力地采用我们的 JSON 并将其扁平化为带有 __ 分隔符的一系列设置,以便它们可以在我们的代码中正常工作。

我们完全放弃这种方法了吗?有一个更好的方法吗?我们经常需要在一个文件中管理我们的 Prod JSON 设置,并且希望自动化工作流以从 JSON 生成符合 DevOps 的设置。

有人有什么想法吗?很想听听其他人如何使用 Azure DevOps 将他们的微服务、功能等部署到 QA、Staging、Prod 环境。

谢谢!

【问题讨论】:

  • 让我感到困惑的是,您为什么或在与部署相关的应用程序设置中添加了什么。这部分真的让我很困惑。如果您可以在此处放置一个示例 YAML 文件以查看您在做什么以及如何操作,您的问题会好得多。我希望你没有使用经典的 devops 编辑器。
  • 如果你真的把 devops 的东西放在应用程序设置中,那么,是的,你在那里犯了一个错误。
  • 我认为您可能没有正确解释我的问题。我没有将 DevOps 设置放在应用程序设置中。我希望通过 DevOps 部署我的应用程序设置。已经有一种使用 DevOps 管道参数添加这些的方法,它只是采用一种非常不同的格式。我想知道是否有更好的方法。谢谢!
  • 它是真的,这个问题的框架确实让我感到困惑。两种解决方案 - 天蓝色密钥库和秘密变量,以对您的情况更有意义的为准。这两个解决方案是如此明显,而您当前的 devops 部署听起来如此复杂 - 所以您显然是 YAML 的高级用户,我没想到,这就是我们在谈论的 :) 我的坏人,我的坏人 :)跨度>
  • 完全没有问题。我很高兴收到反馈!再次感谢!

标签: azure azure-devops


【解决方案1】:

理想情况下,您应该将您的机密移动到 Azure KeyVault 中,并将名称保留在您的应用配置中。 Here 你已经展示了如何做到这一点。

如果您需要快速获胜,您可以考虑使用secure files 并将您的环境配置移到那里并在创建包之前获取它们。但是,这不应该是您的最终解决方案,因为您应该将单个包部署到每个环境。如上所述,您如何做到这一点。将 Key Vault 与 Azure 配置结合使用,您可以在其中覆盖设置值以指示应在给定环境中使用哪个 Key Vault。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2019-07-25
  • 2020-04-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-12-22
  • 2021-01-31
相关资源
最近更新 更多