首页 > 解决方案 > Azure Storage V2 blob 事件 - 不触发 ADF

问题描述

我有一个带有 blob 事件触发器的 Azure 数据工厂 V2 (X)。当我使用存储资源管理器手动上传文件时,blob 事件触发器工作正常并触发 Data Facotry (X)。但是当我使用另一个数据工厂 (Y) 将文件写入同一个 Blob 存储而不是手动写入时,该事件不会触发我的数据工厂 (X)。

我已经验证了以下内容:

  1. Blob 存储的“事件”刀片部分下没有多个事件。
  2. 使用正确的过滤器创建了一个系统主题和一个订阅。我有带有容器名称的“BeginsWith”和带有文件扩展名“parquet”的“EndsWith”。
  3. 我已经验证了 Stack Overflow 上的相关问题,但这似乎有所不同。

任何线索可能是错误的还是这是一个已知问题?

编辑:我检查了事件主题和订阅的日志,当文件由 ADF (Y) 写入时,没有生成事件,但通过手动上传/写入,事件被触发。

标签: azure-data-factory-2azure-eventgrid

解决方案


如果您的触发器事件是blob创建的,那么blob事件触发器基本上取决于新的Etag。创建新的 etag 后,您的管道将被触发。

这是我这边的触发器:

在此处输入图像描述

在我这边,我创建了 3 个容器:test1、test2、test3。Datafactory Y 上的管道将文件从 test1 发送到 test2,Datafactory X 上的管道具有上述触发器。如果触发,它会将文件从 test2 发送到 test3。当 Datafactory Y 上的管道写入文件时,Datafactory X 上的管道将被触发。文件将毫无问题地发送到 test3。

基本上,“创建 blob”的原理是基于容器的新 etag。当您的 Datafactory 将文件发送到目标容器时,毫无疑问会出现一个新的 etag。

我注意到您提到了 BeginsWith 和 EndsWith,所以我认为这就是问题所在。请检查一下。


推荐阅读