По сути, подписчик webhook обрабатывает следующие две группы событий.Конкретный тип события хранится в заголовке http «aeg-event-type».
Внутренние события модели таблицы событий, такие как eventTypes Подтверждение подписки и Удаление подписки .Схема для этих типов событий всегда совпадает со схемой по умолчанию, такой как EventGridSchema .Другими словами, это не зависит от EventDeliverySchema .ИМО, имея схему по умолчанию для внутренних событий, создает сильные типы событий, особенно когда у нас есть CustomInputSchema.
Источник интереса события (темы) - это события, определяемыевходная схема и в настоящее время модель сетки событий поддерживает 3 типа, таких как EventGridSchema (по умолчанию), CloudEventSchema и CustomInputSchema .AEG поддерживает следующие сопоставления ввода / вывода схемы:
- EventGridSchema на схемы доставки EventGridSchema и CloudEventSchema
- CloudEventSchema только для схемы доставки CloudSchemaSchema
- CustomInputSchema для схемы доставки EventGridSchema и CloudEventSchema и CustomInputSchema
Тип события в заголовке: aeg-event-type = Notification , а схема основана на подписанной EventDeliverySchema (см. следующеесопоставления).
Исходя из вышеизложенного, для вашего сценария у вас должны быть отдельные объекты строгого типа для внутренних событий (схема по умолчанию - EventGridSchema) и для событий уведомления на основе подписанной EventDeliverySchema.
Ниже приведен пример заголовков http:
aeg-subscription-name=EVENTGRIDSCHEMA
aeg-delivery-count=0
aeg-data-version=
aeg-metadata-version=0
aeg-event-type=SubscriptionValidation
Обратите внимание, есть только имя подписки, чтобы выяснить, какиеEventDeliverySchema был подписан.Было бы неплохо иметь дополнительный заголовок aeg, например: aeg-subscription-label , чтобы передать некоторые метаданные подписки обработчику подписчика.
В качестве обходного пути мы можем передать обработчику webhook подписчика некоторые значения через параметры запроса url, например: & eds = CustomInputSchema