Azure功能:仅为新事件配置blob触发器

时间:2016-12-07 02:22:49

标签: c# azure azure-storage-blobs azure-functions

我的天蓝色储存中有大约800k的斑点。当我用blobTrigger创建azure函数时,它开始处理我在存储中的所有blob。如何将我的功能配置为仅针对新的和更新的blob进行触发?

3 个答案:

答案 0 :(得分:10)

目前无法做到这一点。在内部,我们通过将收据存储在控件容器azure-webjobs-hosts中来跟踪我们处理的blob。任何没有收据的blob或旧收据(基于blob ETag)都将被处理(或重新处理)。这就是为什么你的现有blob正在被处理 - 他们没有收据。 BlobTrigger目前旨在确保最终处理与路径模式匹配的容器中的所有blob,并在更新时重新处理。

如果您对此充满热情,可以在我们的回购here中记录功能请求,并详细说明您的方案。

答案 1 :(得分:0)

有没有人为此找到某种解决方法?我目前正在尝试在Azure Functions中使用BlobTrigger来处理SQL审核日志。

我只需要更新的日志,但是我们的保留期非常长,因此使用NOOP(在多个环境中,并且每个正在运行的主机上的收据)通过所有这些blob看起来是非常慢/坏的方式去做吧。

答案 2 :(得分:0)

解决这个问题的方法是在已处理的Blob上设置元数据(例如Status = Complete)。触发触发器后,我首先检查这部分元数据,然后返回该函数(如果已设置)。

缺点是元数据的更新将触发该函数的额外执行