将文件上传到 Azure Blob 存储时没有触发事件网格事件——为啥?
Posted
技术标签:
【中文标题】将文件上传到 Azure Blob 存储时没有触发事件网格事件——为啥?【英文标题】:No Event Grid events triggering when uploading files to Azure Blob Storage -- why?将文件上传到 Azure Blob 存储时没有触发事件网格事件——为什么? 【发布时间】:2020-11-02 02:56:11 【问题描述】:我使用存储帐户、函数应用程序和事件网格系统触发器在 Azure 中设置了一个简单的场景。 Blob 上传到存储帐户应导致事件网格系统触发器发送 BlobCreated 事件以触发 Azure 函数。
我可以看到,根据 Azure 门户中的概述页面,似乎为正确的存储帐户配置了事件网格系统主题:
我为事件网格系统主题创建了一个订阅,它订阅了存储帐户可以生成的所有事件,正如我在 Azure 门户中看到的那样。这显示所有 6 种事件类型均已启用,因此我没有将它们过滤掉。
尽管如此,当我将 blob 上传到我在存储帐户中创建的容器中并观察事件是否显示在我的事件网格系统主题的指标中,或者查看我的 Azure 函数触发器时,似乎没有任何事件生成。关于我的存储帐户的一些值得一提的有趣点是:
我使用的是高级存储帐户 我正在为我的存储帐户使用私有 vnet我怀疑是网络问题,但为了排除这种可能性,我将存储帐户改回公共帐户并再次尝试,但并没有改变行为。从我从文档中可以看出的一切,这应该是可行的。任何想法为什么它不是?
【问题讨论】:
您的存储帐户是 V2(通用 v2)吗? 是的,存储帐户类型是 StorageV2(通用 v2)。 我用非高级帐户再次测试了它,它终于可以工作了。除非有人可以提供其他证据,否则这表明 Event Grid 在撰写本文时不适用于高级存储。 文档并未将 Premium 称为不受支持。我会试着让服务团队的人来澄清一下。 感谢@SeanFeldman,作为参考,这是我关注的文档,并对我的原始设置进行了轻微修改:docs.microsoft.com/en-us/azure/event-grid/… 【参考方案1】:我在 MS 的 SDK 团队工作,我直接联系了 EventGrid 团队成员征求意见:
我查看了过去两周的服务日志,但找不到 此主题/事件订阅的任何事件。
能否请您提供具体的时间和地区? 上传/删除/编辑 blob 以帮助调查?也是 这个特定于这个存储帐户?这是以前工作还是这个 适用于其他存储帐户的方案?你能开一个 支持票以正确处理此问题。
谢谢!对流程有任何疑问,请随时回复我,我们将监控此线程
[编辑:来自存储团队的更多信息]
我们与 Azure 存储团队进行了沟通,他们确认所描述的行为是设计和预期的。以下是 Azure 存储团队提供的一些其他详细信息:
问题在于客户使用的是 Premium_LRS StorageV2 帐户。这些帐户仅支持高级页面 blob 和高级 磁盘。
如果客户想要在高级层中存储块 blob,他们 需要创建一个 BlockBlobStorage 帐户。
见下表中的下标 5: https://docs.microsoft.com/en-us/azure/storage/common/storage-account-overview
【讨论】:
谢谢,我在 Azure 中设置了一个全新的场景,并按照documentation here 获取了一个使用我想要的相同组件的应用程序的基本模板。首先,我按照说明将我的 SKU 更改为 PREMIUM_LRS 而不是 STANDARD_LRS,我观察到将文件上传到存储帐户从未导致任何事件触发。我再次使用了 STANDARD_LRS SKU 并且它工作正常。我将为特定帐户的跟进开一张票。 您好,我在今晚从存储团队收到的消息中添加了新的编辑。谢谢! 您好@laurent-mazuel,我按照图像调整器功能应用程序的 Azure CLI 脚本完成了所有先决条件,但无法通过事件网格捕获 Blob 创建事件,示例应用程序无法正常工作(此页面: docs.microsoft.com/en-us/azure/event-grid/…) 你可以使用教程上的反馈按钮吗?它将向 EventGrid 团队说明本教程需要修订。谢谢!以上是关于将文件上传到 Azure Blob 存储时没有触发事件网格事件——为啥?的主要内容,如果未能解决你的问题,请参考以下文章
触发 Azure 数据工厂管道 - Blob 上传 ADLS Gen2(以编程方式)
从 SFTP 服务器将文件上传到 Azure 存储 Blob
直接从前端将数据上传到 Azure Blob 存储时的安全问题