如何解决Azure 事件网格:查明 blob 是否被覆盖
我已将 EventGridTrigger
连接到 Azure Functions 并监听 Microsoft.Storage.BlobCreated
更改。到目前为止,它似乎运行良好。但是,我观察到如果客户端覆盖同一个 blob,将会触发多个事件。我只需要为每个 blob 创建做一些服务器端处理一次。是否有任何元数据可供我们查看一个 blob 被覆盖了多少次?
作为一种解决方法,我正在考虑将 blob URI 保存到一个 Cosmos
容器中作为主键,以查看它之前是否曾经被处理过,但这对于这种微不足道的事情来说听起来有些矫枉过正。
解决方法
这里有 3 种可能的解决方案:
- 将 blob uri 存储到 Azure 表(与使用 Cosmos 的 sugestion 相同,但更便宜)
- 在处理之前打开 blob 版本控制检查它是 blob 的第一个版本。启用版本控制是有代价的。
- 检查更新 blob 的代码。我们可以使用 BlockBlobClient 并只更新受影响的块吗?这会避免在更新时触发 BlobCreated。
我会首先检查选项 3 是否可行。如果没有,请执行选项 1。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。