0

我正在 Azure 数据工厂中实现 azure devOps。

我的开发环境 ADF 已集成到 git 存储库。

我创建了一个构建管道,用于在 adf_publish 分支发生更改时构建工件。

我的下一步是将 ARM 模板工件部署到 PROD 环境。

假设在将 DEV 更改部署到 PROD 时,PROD 环境中有许多触发的管道,而 PROD 环境中运行的管道很少。

我的问题是:

  1. 如何将更改从 DevOps 部署到 PROD 环境?它会删除和替换 DevOps 中的所有管道和触发器,还是只选择更改并更新 PROD 环境而不触及未更改的管道?
  2. 假设一个管道在部署时正在 PROD 环境中运行,那么该管道运行会发生什么?
  3. 假设在 3:00 点有一个触发管道,部署在 2:55 开始,在 3:05 结束。应该在 3:00 运行的触发管道会发生什么?

任何人对上述问题有明确的想法或是否有任何文件可供参考以获得这些问题的答案?

Keeping deployment mode as Incremental instead of keeping it as Complete在ARM模板部署的时候经历过。该选项会完成我上面要求的所有任务吗?

4

1 回答 1

2

如何将更改从 DevOps 部署到 PROD 环境?它会删除和替换 DevOps 中的所有管道和触发器,还是只选择更改并更新 PROD 环境而不触及未更改的管道?

这取决于您选择的部署模式。

在此处输入图像描述

  • 部署模式:这指定必须部署模板中指定的 Azure 资源的部署模式。
    增量模式将部署处理为
    资源组的增量更新。

    它会保留资源组中存在但未在模板中指定的未更改资源。完整模式
    会删除不在您的模板中的资源。
    验证模式使您能够在 创建实际资源
    之前发现模板的语法问题。
    默认情况下,使用增量模式。

假设一个管道在部署时正在 PROD 环境中运行,那么该管道运行会发生什么?

您的部署将失败,并且您可能会收到 409 冲突错误消息。您可以查看文档最佳实践 CI/CD:</p>

部署前和部署后脚本。在 CI/CD 中的资源管理器部署步骤之前,您需要完成某些任务,例如停止和重新启动触发器以及执行清理。我们建议您在部署任务之前和之后使用 PowerShell 脚本。有关详细信息,请参阅更新活动触发器。数据工厂团队在此页面底部提供了一个可供使用的脚本。

假设在 3:00 点有一个触发管道,部署在 2:55 开始,在 3:05 结束。应该在 3:00 运行的触发管道会发生什么?

与您的第二个问题类似,不应触发管道(或处于挂起状态),但我仍然没有实例来测试这种情况。

于 2020-10-28T06:08:38.987 回答