如何重用特定于环境的变量?

时间:2018-01-08 15:09:34

标签: tfs azure-devops azure-pipelines-release-pipeline

假设我们有两个逻辑环境“暂存”和“生产”。 在创建多个版本定义时,如何或在何处定义一个在分段上具有值X而在生产中具有Y AND 的变量能够重用这些变量?

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

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

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

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

我想创建2个版本定义,以便将产品(两者都使用该Api)部署到两个环境中。

  1. 如果我将ApiUrl添加为环境变量,我需要在所有版本定义环境中添加和维护这些变量。不太可维护?
  2. 如果我创建一个变量组“StagingVariables”和“ProductionVariables”,我认为我不能切换/选择在哪个环境中使用哪个组?您可以将多个变量组链接到发布定义,但不能链接到特定环境,对吧?
  3. 您可以定义发布定义变量,这些变量将结合上述两个选项中最差的选项。
  4. 如果没有合适的方法来解决这个问题,有没有办法帮助减轻维护负担?批量编辑环境变量,例如?

1 个答案:

答案 0 :(得分:0)

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

或者,我认为您可以在环境中创建变量并将值设置为变量组中的变量,例如:

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

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

这样,该值仍然在一个位置定义,但在发布级别显式确定范围。