Azure 事件网格系统主题对新的 blob 上传没有反应

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

我遇到了一个大问题,即 azure 事件网格系统主题无法响应从 azure 函数应用程序或 azure 逻辑应用程序上传的 blob。当我手动上传文件(即使是相同的文件)时,它可以工作

Blob 存储和事件网格中存在一个大错误,其中 Blob 存储将允许您上传到具有前导 / 的 Blob 路径的存储,这将导致事件网格系统主题不响应事件,因为它有 https://storagename.blob.core.windows.net/container//folder/folder/file.txt 如果您在主题过滤器中添加 // ,您可能会使其工作

但在我看来,blob 存储不应允许您在路径无效时上传文件,就像在本例中一样

根据我的理解,事件网格系统主题正在对 Log Analytics Workspace(或只是普通日志)putBlob 和您的主题过滤器做出反应,但我的过滤器没有 //,那么它不会采取任何操作,因为它不匹配

我花了一周的时间进行调试,并让多个团队与来自 azure 支持事件网格团队和存储 Blob 团队的多个人员会面,他们都没有发现双正斜杠的问题,即使当我发现错误并告诉他们时,他们也会不承认这是一个错误并且他们需要修复它。 解决方案是删除代码中的前导斜杠

azure-blob-storage azure-eventgrid azure-log-analytics-workspace
2个回答
0
投票

我已使用您的筛选器在存储帐户 (rk2018ebstg) 上创建了一个订阅(名称为 abc),请参阅我的 Azure Event Grid Tester 工具的以下屏幕片段:

然后我使用 REST API Put 请求上传了一个 blob 文件:

https://rk2018ebstg.blob.core.windows.net/container/folder/folder/2024-04-21T00:16:40.txt?sp=racwd&st=2024-04-21T00:16:40Z&se=2034-04-21T08:16:40Z&sv=2022-11-02&sr=c&sig=****

以下屏幕片段显示了收到的有关存储主题的事件消息:

如您在上面的屏幕中看到的,AEG 反应正确,包括其过滤。

您与 blob 路径中的“< no name >”相关的评论(例如多个“/”)不是错误,它是基于设计的,请参阅here,所以换句话说,“< no name >”字典是有效的字典名称。

我建议在 AEG 订阅中使用高级过滤,请参阅以下示例:

"advancedFilters":[
      {
        "values":[
          "/containers/container/blobs//folder/folder/",
          "/containers/container/blobs/folder/folder/"
        ],
        "operatorType":"StringContains",
        "key":"subject"
      }
    ]

0
投票

使用高级过滤器确实有一个缺点,因为它会污染订阅指标中的图表,我在 24 小时内发生了一个事件 aegst metric

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