首页 > 解决方案 > Azure 媒体服务 v3 - 事件网格 - 删除资产不会触发任何存储事件

问题描述

Azure 媒体服务 v3 - 事件网格 - 删除资产不会触发任何存储事件

目标是使用事件网格来检测资产更改,例如资产创建或资产删除。

有没有办法为资产 blob 容器本身而不是单个 blob 获取事件?

许多 Microsoft.Storage.BlobCreated 事件是在实时事件期间发送的 - 实际上对于我需要的来说太多了。

仅针对删除实时事件预览 blob 发送已删除事件:preview.ism 和 preview.ismc blob。

  {
"topic": "/subscriptions/123/resourceGroups/ResGroup/providers/Microsoft.Storage/storageAccounts/my_storage",
"subject": "/blobServices/default/containers/asset-90fc157d-b4a3-4862-a7fe-ff4df7fa5ee7/blobs/preview.ismc",
"eventType": "Microsoft.Storage.BlobDeleted",
"eventTime": "2018-12-05T06:38:32.997468Z",
"id": "e8416467-b01e-00a3-2965-8ccf53060fe2",
"data": {
  "api": "DeleteBlob",
  "clientRequestId": "05549d31-e9be-4f15-961f-befbba482f6c",
  "requestId": "e8416467-b01e-00a3-2965-8ccf53000000",
  "eTag": "0x8D65A7C46CFD798",
  "contentType": "application/octet-stream",
  "contentLength": 3809,
  "blobType": "BlockBlob",
  "url": "https://my_storage.blob.core.windows.net/asset-90fc157d-b4a3-4862-a7fe-ff4df7fa5ee7/preview.ismc",
  "sequencer": "0000000000000000000000000000137600000000003f399c",
  "storageDiagnostics": {
    "batchId": "06e102aa-d2ec-4aaf-8c4c-0d89dfae5ffb"
  }
},
"dataVersion": "",
"metadataVersion": "1" }

标签: azure-media-services

解决方案


首先,根据官方文档Reacting to Blob storage events,如下。

Blob 存储事件在通用 v2 存储帐户和 Blob 存储帐户中可用。

因此,如果您使用的是通用 v2 存储,则只有创建的事件Microsoft.Storage.BlobCreated才会发送到您的 Azure 存储事件订阅。请确定您使用的是哪种 Azure 存储。

其次,如果只关注资产删除事件Microsoft.Storage.BlobDeleted,可以EVENT TYPES在 Azure Storage 的 Event Subscription 中选择,如下图。

在此处输入图像描述

所有 Blob 存储事件都与 Blob 本身相关,而不是与容器相关。Filtering events您可以在选项卡中看到将事件与主题开始或结束字符串相匹配的功能,Additional Features但仍然可以获取资产 blob 的事件。

在此处输入图像描述

一种解决方法是通过 webhook 处理 blob 事件进行过滤,或者您可以尝试将 EventHubs 与 StreamAnalytics 结合使用来过滤和获取容器的事件。


推荐阅读