如何重用环境特定变量?

How can I reuse environment specific variables?

假设我们有 2 个逻辑环境 "Staging" 和 "Production"。 我如何或在哪里可以定义一个变量,该变量在暂存时具有值 X,在生产时具有值 Y AND 当我创建超过 1 个发布定义时能够重用这些变量?

一个示例是 Web API 的 URL 供在该环境中发布的所有应用程序使用。

例如,我有这些环境特定变量:

Staging
ApiUrl: https://staging.api.com

Production
ApiUrl: https://production.api.com

我想创建 2 个发布定义来将产品(都使用 Api)部署到两个环境。

  1. 如果我添加 ApiUrl 作为环境变量,我需要在所有发布定义环境中添加和维护这些变量。不是很容易维护?
  2. 如果我创建一个变量组 "StagingVariables" 和 "ProductionVariables" 我不认为我可以 switch/choose 在哪个环境中使用哪个组?您可以 link 多个变量组到一个发布定义,但不能到特定环境,对吗?
  3. 您可以定义发布定义变量,该变量将结合上述 2 个选项中最差的选项。

如果没有好的方法解决这个问题,有没有办法帮助减轻维护负担?例如批量编辑环境变量?

您的评估似乎是正确的。我能想到的唯一方法是在环境开始时以编程方式覆盖 PowerShell 脚本中的变量值。

或者,我觉得你可以在环境中创建一个变量,将值赋值给变量组中的一个变量,eg:

Variable Group Staging
  - Staging.ApiUri
Variable Group Prod
  - Prod.ApiUri

Environment Staging
  - ApiUri = $(Staging.ApiUri)
Environment Prod
  - ApiUri = $(Prod.ApiUri)

这样一来,值仍然在一个位置定义,但明确限定在发布级别。