【问题标题】:Need to trigger a pipeline to different Azure Cloud resources in different run需要在不同的运行中触发到不同 Azure 云资源的管道
【发布时间】:2021-05-06 12:14:07
【问题描述】:

我们在 Azure DevOps 中设置了数据工厂管道。我们计划部署两个不同的数据工厂。因此,我们希望如果我们第一次运行管道,那么它将使用第一个 Azure 数据工厂资源(您可以将其称为 DV01),并且当任何其他用户并行触发同一管道时,它将使用其他 Azure 数据工厂资源(你可以说DV02)。

两种不同的资源组合可以说是 DV01(它包含 ADF、Data Lake、Blob、虚拟机等)和 DV02(它还将包含不同的 ADF、Data Lake、Blob、虚拟机等)

当我们在 Azure Cloud 中使用多个资源(如 ADF、Data Lake、Blob、虚拟机等)在管道中执行操作时,我们如何实现这一点?

【问题讨论】:

  • 您使用什么任务来部署到 Azrue DevOps 中的数据工厂?您能与我们分享当前的构建定义吗?
  • 这是构建定义-名称:CI.Gated 触发器:无变量:-名称:system.debug 值:false 阶段:-阶段:Gated_Build 显示名称:Gated 构建变量:-组:Vars。 DataFlow.BLD 作业:-作业:Gated_Build displayName:Gated Build timeoutInMinutes:90 个变量:-组:Vars.SQL.bld -组:Vars.ADF.bld 池:vmImage:windows-2019 步骤:-结帐:自我-模板: sql-gated-ci.yml - 模板:dw-gated-ci.yml - 模板:adf-gated-ci.yml
  • 嗨@Prateek Porwal。您是否在模板中定义了数据工厂源?例如:第一个触发器运行 sql-gated-ci.yml,下一个触发器运行 dw-gated-ci.yml。你能帮我确认这个过程吗
  • 嗨@KevinLu-MSFT,在管道的单个触发器中,每个 yaml 都会运行。
  • 那么如何部署到不同的数据工厂呢?你在哪里设置这个值?我们可以使用条件来执行此功能。请与我分享。

标签: azure azure-devops azure-data-factory azure-data-lake-gen2


【解决方案1】:

我们计划为不同的并行作业设置一个新环境。

根据您的要求,您想设置另一个作业来部署 DV02。

请参考以下示例:

name: $(Rev:r)

trigger:
- none

pool:
  vmImage: ubuntu-latest




stages:
- stage: A
  jobs:
  - job: A1
    condition: eq(variables['build.buildnumber'], '1')
    steps:
     - checkout: self
  - job: A2
    condition: ne(variables['build.buildnumber'], '1')
    steps:
     - task: PowerShell@2
       inputs:
         targetType: 'inline'
         script: |
           # Write your PowerShell commands here.
           
           Write-Host "Hello World"

您可以定义变量 build.buildnumber(name: $(Rev:r))。它将根据管道运行进行计数。

第一次触发管道时,值为1。然后您可以在每个作业中添加条件。

当值为 1 时,它将运行第一个作业。否则它将运行另一个作业。

这是关于 conditionbuild.buildnumber 的文档。

【讨论】:

  • @PrateekPorwal。请改为使用 AGENT.MACHINENAME。Agent.name 不是变量。
  • condition: eq(variables['Agent.Name'], 'agent-01') 如果我通过了这个条件,那么 variables[Agent.Name] 给出 Null 值并且管道步骤没有'不成功。
  • 如果我这样做,那么只有它可以工作 - steps: - powershell: Write-Host "Hello-Agent3" condition: eq(variables['Agent.Name'], 'hbi-agent-03')
  • AGENT.MACHINENAME 也产生相同的 Null 值。当我将条件语句放在 PowerShell 模块下方时,它可以工作,但没有用。
  • 嗨@PrateekPorwal。你在哪里设置这个表达式?这个变量可以在 steps 参数下工作。
猜你喜欢
  • 1970-01-01
  • 2022-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-30
  • 2021-12-17
  • 1970-01-01
  • 2020-04-24
相关资源
最近更新 更多