Создание правила фильтрации тем для типа события Microsoft.Storage.BlobCreated на портале Azure

На портале Azure я создал событие хранилища BLOB-объектов, которое запускается при создании файла .zip. Конечной точкой этого события является тема служебной шины. В этой теме у меня есть подписка с правилом по умолчанию (Фильтр 1 = 1).

Я хочу создать правило, которое будет передавать только сообщения из этого события. Обычно я бы использовал фильтр корреляции со свойством Label, но, к сожалению, в сообщении из хранилища BLOB-объектов это свойство Label пусто.

Я пытался:

Key Value
eventType Microsoft.Storage.BlobCreated

но это не сработало.

Сообщение, которое я получаю:

Системные и настраиваемые свойства

Текстовое сообщение:

{
  "topic": ***,
  "subject": "/blobServices/default/containers/my-test-subscription/blobs/test.zip",
  "eventType": "Microsoft.Storage.BlobCreated",
  "id": ***,
  "data": {
    "api": "PutBlob",
    "clientRequestId": ***,
    "requestId": ***,
    "eTag": "0x8D8EDDB53852C51",
    "contentType": "application/x-zip-compressed",
    "contentLength": 1118884,
    "blobType": "BlockBlob",
    "url": "***.blob.core.windows.net/my-test-subscription/test.zip",
    "sequencer": "000000000000000000000000000008CE0000000006ddc175",
    "storageDiagnostics": {
      "batchId": ***
    }
  },
  "dataVersion": "",
  "metadataVersion": "1",
  "eventTime": "2021-03-23T09:09:12.7782481Z"
}

Я делаю что-то неправильно? Есть ли возможность установить свойство Label сообщения большого двоичного объекта?


person MoNo    schedule 23.03.2021    source источник
comment
AFAIK, вы не можете установить правила фильтрации на основе содержимого сообщения в служебной шине Azure.   -  person Gaurav Mantri    schedule 23.03.2021
comment
Вместо этого вы можете применить фильтрацию на уровне сетки событий и отправлять только отфильтрованные события в вашу подписку на служебную шину Azure. Для получения дополнительных сведений см. Здесь: docs.microsoft .com / ru-ru / azure / event-grid / how-to-filter-events.   -  person Gaurav Mantri    schedule 23.03.2021


Ответы (1)


Как сказал @GauravMantri, мы не можем определить правила фильтрации на основе содержимого сообщения в теме служебной шины Azure. Правило фильтрации просто может быть основано на свойствах, определенных пользователем, и свойствах системы.

введите описание изображения здесь

Так что, если вы реализуете функцию, мы просто сможем сделать это на уровне сетки событий. Мы можем создать правило фильтрации с типами событий и тематикой.

Например

"filter": {
            "subjectBeginsWith": "<>",
            "subjectEndsWith": ".zip",
            "includedEventTypes": [
                "Microsoft.Storage.BlobCreated"
            ],
            "advancedFilters": [],
            "enableAdvancedFilteringOnArrays": true
        },

Для получения более подробной информации, пожалуйста, обратитесь к

https://docs.microsoft.com/en-us/azure/service-bus-messaging/topic-filters

https://docs.microsoft.com/en-us/azure/event-grid/event-filtering

https://docs.microsoft.com/en-us/azure/event-grid/handler-service-bus

person Jim Xu    schedule 24.03.2021