数据工厂的CICD

问题描述 投票:0回答:1

在我们的一个客户站点,我们使用 Azure 数据工厂 (ADF) 来支持多个项目,按项目将管道和数据集部分组织到文件夹中。但是,我们在部署过程中遇到了影响共享环境中项目独立性的问题。

这是问题场景:

想象两个开发人员,每个人都在不同的项目上工作,项目 A 和项目 B。

  1. 开发人员 1 对项目 A 进行更新并将其代码推送到 DEV 环境中的主分支。
  2. 开发者2同时工作 在项目 B 上并将其更新推送到主分支 开发。

当开发人员 2 准备将项目 B 升级到 UAT 环境时,当前设置会无意中将项目 A 和项目 B 的更改都部署到 UAT。这种设置是有问题的,因为 UAT 环境无意中收到了来自项目 A 的更新,而项目 A 应该保持隔离。

我们当前的部署流程使用 ARM 模板,特别是 Azure 资源组部署任务,但此设置缺乏有效分离特定于项目的更改的精细控制。

- task: AzureResourceGroupDeployment@2
  displayName: 'Azure Deployment:Create Or Update Resource Group Data Factory'
  inputs:
    azureSubscription: 'AZURE-BIC-TST-WEU'
    resourceGroupName: rgweucgitdwhreports
    location: 'west europe'
    csmFile: '$(drop)/dfweucgiddwhreports/ARMTemplateForFactory.json'
    csmParametersFile: '$(drop)/dfweucgiddwhreports/ARMTemplateParametersForFactory_WEU_TST.json'
  timeoutInMinutes: 60

我如何设想(不确定是否可能)在运行发布管道之前,用户应该为管道变量提供值(下图用于可视化) enter image description here

如果用户给出值“ProjectB”,它应该只查看 adf 中 ProjectB 所在的文件夹(下图)

enter image description here

P.S 我知道对于很多事情(例如链接服务、IR 等)来说这是无法实现的,但如果我能够设法分离管道和数据集,这将已经是一大进步。

但我也期待听到更多可以做到这一点的选择!

azure azure-devops azure-data-factory azure-resource-manager cicd
1个回答
0
投票

根据Azure数据工厂中的持续集成和交付

根据设计,数据工厂不允许择优挑选提交或选择性发布资源发布将包括数据工厂中所做的所有更改。

此外,当您使用

AzureResourceGroupDeployment@2
任务部署 ADF 时,您是通过 ARM 模板进行部署。此 ARM 模板是从 ADF 生成的,包含 ADF 中的所有资源。 ARM模板不支持部分部署,因此
AzureResourceGroupDeployment@2
任务无法部署模板中的部分资源。这并不是“此设置缺乏有效分离特定于项目的更改的精细控制”,而是 ARM 模板就是这样工作的。

总而言之,您无法将 ADF 中的部分资源从一个环境部署到另一个环境。

© www.soinside.com 2019 - 2024. All rights reserved.