azure-media-services - 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" }
解决方案
首先,根据官方文档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 结合使用来过滤和获取容器的事件。
推荐阅读
- python - 当响应文本没有显示在浏览器中的所有内容时,如何使用 BeautifulSoup 抓取 Web 内容?
- java - MqttAsyncClient 客户端未连接 (32104)
- html - 手动订购 Jekyll 合集
- java - 这段 jTable 插入代码中存在什么错误?
- c - 将变量的地址分配给另一个变量
- java - 字符串字谜的边界条件
- javascript - 反应:如何重定向
- css - 如何在没有单选按钮的情况下制作 mat-radio-group?
- java - 打算将信息传递给新活动
- jquery - 我该如何处理从上午 9 点到下午 5 点创建的每个小时列的不同小时?