gpt4 book ai didi

azure-storage - 仅当 blob 完全提交时 BlobCreated 事件

转载 作者:行者123 更新时间:2023-12-04 07:23:09 25 4
gpt4 key购买 nike

我想通过 Arm 部署创建一个 EventGrid,以便在添加容器中的所有 blob 后摄取到 ADX 集群。 (它是每个特定时间间隔创建的一堆 blob)
我想确保只有在创建 blob 并且其内容已完成写入时才会引发事件。 (不仅仅是“blob 创建的文件”)。
存储是 Data Lake Storage V2,这意味着它具有“分层命名空间”
我在看这个链接:
https://docs.microsoft.com/en-us/azure/event-grid/event-schema-blob-storage?tabs=event-grid-event-schema
我很困惑:
Blob REST API 的事件列表 部分和 Azure Data Lake Storage Gen 2 REST API 的事件列表 部分。
哪个与我相关,我可以实现我的目标还是有办法绕过它来实现我的目标?

最佳答案

我见过各种各样的方法来规避这一点,有些好,有些坏。只取决于什么对你有用。

  • 您可以在首次触发 BlobEvent 触发器时等待指定的时间。如果您有小文件,并且您知道该文件不会超过 2 或 3 分钟,那么这是一个选项。如果您不知道完全加载 Blob 需要 5 分钟还是 30 分钟,那么这是一个糟糕的选择。我个人不喜欢这个选项,但它对某些人有用。
    The Wait Method
  • 使用流或直接复制暂存 Blob,然后通过直接复制移动它们,在完全提交之前不会触发触发器。我个人喜欢这种方法,因为它允许将 Blob 移动到 Staging,然后在它们上设置元数据,然后对它们执行 Blob Copy 命令以复制包含的元数据。 (仅供引用,ADF 具有在复制事件中设置元数据的功能,但同样的原则可以应用于 Azure Functions、Powershell、C#,以及任何将 blob 放在那里的代码。)

  • Stage Blob, perform action, then copy to final container destination
  • 理论上,您可以在 ADF 中使用 UNTIL 事件来检查传入 Blob 的状态,一旦它不再增长,具有特定状态,可能是特定的最后修改(类似这些),那么您可以继续在您的管道中。这种方法我没有测试过,但我希望可以不断获取文件的元数据并使用它来确定管道是否准备好继续运行。
  • 关于azure-storage - 仅当 blob 完全提交时 BlobCreated 事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68375812/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com