Azure Release Pipeline 中的 FileTransform@2 任务后触发部署失败

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

我正在对三个文件进行初始构建,所有这些文件都与 Azure 数据工厂相关:

  • 摄取管道
  • 摄取映射数据流
  • 触发

构建将文件复制到目标文件夹,然后发布工件。

到目前为止一切正常。

下一步是一个版本,我想首先使用 FileTransform@2 任务对数据流和触发器文件进行替换。
下图显示,即使数据流转换存在一个问题,两个文件的转换也成功进行(这不会阻止管道运行,也不是问题的根本原因)

看最后一步,Deployment Completion,报错如下:

从错误消息中,您将看到它是在尝试部署触发器时发生的,并且当它谈论在 preprod 上写入但不在 dev 上写入的权限时,错误本身是正确的。

这就是问题所在:在前面的转换触发器步骤中,我将范围属性值替换为正确的 preprod 值而不是 dev 值。

这就是 FileTransform@2 任务的配置方式:

这是运行期间生成的日志文件,显示范围属性的替换正在完成:

在线搜索,我唯一想到的是部署的最后阶段是重新下载工件,这意味着它不会查看转换后的文件。但是,我不知道如何证明这一点,也不知道我是否走在正确的轨道上。

我该如何解决这个问题?

azure-devops cicd azure-pipelines-release-pipeline
1个回答
0
投票

我想到的唯一想法是部署的最后阶段是重新下载工件,这意味着它不会查看转换后的文件。但是,我不知道如何证明这一点,也不知道我是否走在正确的轨道上。

是的,在发布管道中,默认情况下它将下载构建工件。您可以通过选项禁用该操作:

不同的阶段将在不同的代理机器上运行。如果您想使用上一阶段生成(转换)的文件,您需要使用artifact将数据传输到下一个阶段/作业。

但是,在

Classic
发布管道中,不支持 发布工件

要使用转换后的文件,您可以检查以下选项:

  1. 将任务放在一项工作中,分阶段

    Transform trigger
    Transform Data flow
    Deployment Complete
    。在一项工作中,它可以使用转换后的数据。

  2. 使用 yaml 定义您的发布管道,因为支持

    publish artifact
    。您可以在此处查看示例以供参考。

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