gpt4 book ai didi

azure - Azure Pipelines 的并行化

转载 作者:行者123 更新时间:2023-12-02 08:28:39 24 4
gpt4 key购买 nike

我有一个管道(在 YAML 中),用于升级基础设施(我有 2 个阶段,每个阶段包含一系列作业)

我现在想同时升级多个基础设施,即将代表部署的标识符列表传递到管道,然后让它升级每个基础设施。

组织管道的最佳实践是什么?感觉我需要使用循环生成一组并行作业?

据我了解,任何工作失败都会导致彻底失败,这可能会让我们陷入非常困惑的状态。

最佳答案

如果您购买了parallel jobs为您的组织。您可以使用Template使用表达式 ${{parameters.identities 中的每个 id}} 根据 identities 参数生成多个作业。

因此,您可以将升级基础设施的作业移至模板中,并如下定义 yaml 管道。请参阅下面的示例:

模板文件:upgrade-infrastruct.yml

parameters:
id: 1

jobs:
- job: upgradeinfra${{parameters.id}}

steps:
- powershell: echo "upgrade-infra-${{parameters.id}}"

azure-pipelines.yml:

#define the identities as a object to hold a array object of ids
parameters:
- name: identities
type: object
default:
ids:
- 1
- 2


trigger: none

stages:
- stage: Upgrage
pool:
vmImage: windows-latest

jobs:
- job: A
steps:
- powershell: echo "job A"

#loop through the ids array object and the each id to the template paramter to generate multiple jobs for each id.
#indentation is very important, bad indentation may cause pipeline compile error.
- ${{ each id in parameters.identities.ids }}:
- template: upgrade-infrastructure.yml
parameters:
id: ${{id}}

按照上述方式设置 yaml 管道后,您可以在执行管道时在参数中输入身份:

enter image description here

然后您将看到多个作业已生成并并行运行:

enter image description here

关于azure - Azure Pipelines 的并行化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63016481/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com