Обработчики событий и назначения в службе "Сетка событий Azure" в Kubernetes
Обработчик событий — это любая система, которая предоставляет конечную точку и является назначением для событий, отправляемых Сеткой событий. Обработчик событий, получающий событие, обрабатывает его и использует полезные данные события для выполнения той или иной логики, что может привести к возникновению новых событий.
Чтобы настроить Сетку событий для отправки событий в назначение, необходимо создать подписку на события. Это можно сделать с помощью Azure CLI, пакета SDK для управления или с помощью прямых вызовов HTTPS, используя версию API 2020-10-15-preview.
Как правило, Сетка событий в Kubernetes может передавать события в любое место назначения через веб-перехватчики. Веб-перехватчики — это конечные точки HTTP(s), предоставляемые службой или рабочей нагрузкой, к которой имеет доступ Сетка событий. Веб-перехватчик может быть рабочей нагрузкой, размещенной в одном кластере, в том же сетевом пространстве, в облаке, локальной или в любом месте, где может быть достигнута сетка событий.
Внимание
Служба "Сетка событий" в Kubernetes с поддержкой Azure Arc сейчас находится в общедоступной предварительной версии. Эта предварительная версия предоставляется без соглашения об уровне обслуживания и не рекомендована для использования рабочей среде. Некоторые функции могут не поддерживаться или их возможности могут быть ограничены. Дополнительные сведения см. в статье Дополнительные условия использования Предварительных версий Microsoft Azure.
С помощью веб-перехватчиков Сетка событий поддерживает следующие назначения, размещенные в кластере Kubernetes:
- Служба приложений Azure в Kubernetes с Azure Arc;
- Функции Azure в Kubernetes с Azure Arc;
- Azure Logic Apps в Kubernetes с Azure Arc.
Кроме веб-перехватчиков, служба "Сетка событий" в Kubernetes может отправлять события в следующие назначения, размещенные в Azure:
- Сетка событий Azure с использованием веб-перехватчиков;
- Функции Azure с использованием только веб-перехватчиков;
- Центры событий Azure с использованием идентификатора ресурса Azure Resource Manager;
- разделы или очереди служебной шины Microsoft Azure с использованием идентификатора ресурса Azure Resource Manager;
- очередь службы хранилища Azure с использованием идентификатора ресурса Azure Resource Manager.
Равенство функций
Служба "Сетка событий" в Kubernetes обеспечивает достаточный уровень равенства функций подписки на события со службой "Сетка событий Azure". В следующем списке перечислены основные различия в функциях подписок на события. Помимо этих различий, для управления подписками на события в службе "Сетка событий" в Kubernetes можно использовать интерфейс REST API службы "Сетка событий Azure" версии 2020-10-15-preview.
- Воспользуйтесь REST API версии 2020-10-15-preview.
- Триггер службы "Сетка событий Azure" для Функций Azure не поддерживается. Для доставки событий в Функции Azure можно использовать тип назначения "Веб-перехватчик".
- Расположение недоставленных писем не поддерживается. Это означает, что вы не можете использовать
properties.deadLetterDestination
полезные данные подписки на события. - Гибридные подключения Azure Relay в качестве назначения пока не поддерживаются.
- Поддерживается только схема CloudEvents. Поддерживаемое значение схемы — CloudEventSchemaV1_0. Схема облачных событий является расширяемой и основана на открытых стандартах.
- Метки (properties.labels) не применяются к Сетке событий в Kubernetes. Поэтому они недоступны.
- Доставка с использованием удостоверения ресурса не поддерживается. Поэтому все свойства для удостоверения подписки на события не поддерживаются.
- Проверка конечной точки назначения еще не поддерживается.
Фильтрация событий в подписках на события
Другим важным аспектом настройки подписки на события является выбор событий, которые должны быть доставлены в назначение. Дополнительные сведения см. в статье Фильтрация событий.
Примеры конфигураций назначения
Ниже приведены примеры распространенных конфигураций в зависимости от предполагаемого назначения.
WebHook
Чтобы опубликовать данные в конечной точке веб-перехватчика, задайте для endpointType
значение WebHook
и укажите:
endpointUrl — URL-адрес конечной точки веб-перехватчика.
{ "properties": { "destination": { "endpointType": "WebHook", "properties": { "endpointUrl": "<your-webhook-endpoint>" } } } }
Сетку событий Azure
Чтобы опубликовать данные в облачной конечной точке Сетки событий Azure, задайте для endpointType
значение WebHook
и укажите:
endpointUrl: Сетка событий Azure URL-адрес раздела в облаке с параметром версии API, установленным значением 2018-01-01, и
aeg-sas-key
задайте для url-адреса закодированный ключ SAS.{ "properties": { "destination": { "endpointType": "WebHook", "properties": { "endpointUrl": "<your-event-grid-cloud-topic-endpoint-url>?api-version=2018-01-01&aeg-sas-key=urlencoded(sas-key-value)" } } } }
Event Hubs
Чтобы опубликовать в центрах событий, задайте для endpointType
этого значения eventHub
и укажите:
resourceId — идентификатор ресурса для конкретного концентратора событий.
{ "properties": { "destination": { "endpointType": "eventHub", "properties": { "resourceId": "<Azure Resource ID of your event hub>" } } } }
Очереди служебной шины
Чтобы опубликовать события в очереди служебной шины, установите для endpointType
значение serviceBusQueue
и укажите:
resourceId — идентификатор ресурса для конкретной очереди служебной шины.
{ "properties": { "destination": { "endpointType": "serviceBusQueue", "properties": { "resourceId": "<Azure Resource ID of your Service Bus queue>" } } } }
Разделы служебной шины
Чтобы опубликовать раздел Служебной шины, установите для endpointType
значение serviceBusTopic
и укажите:
resourceId — идентификатор ресурса для конкретного раздела служебной шины.
{ "properties": { "destination": { "endpointType": "serviceBusTopic", "properties": { "resourceId": "<Azure Resource ID of your Service Bus topic>" } } } }
Очереди службы хранилища
Чтобы опубликовать события в очереди хранилища, установите для endpointType
значение storageQueue
и укажите:
queueName — имя очереди службы хранилища Azure, где выполняется публикация.
resourceID — идентификатор ресурса Azure учетной записи хранения, которая содержит очередь.
{ "properties": { "destination": { "endpointType": "storageQueue", "properties": { "queueName": "<your-storage-queue-name>", "resourceId": "<Azure Resource ID of your Storage account>" } } } }
Следующие шаги
- Добавьте конфигурацию фильтра в подписку на события, чтобы выбрать события для доставки.
- Дополнительные сведения о схемах, поддерживаемых службой "Сетка событий" в Azure Arc для Kubernetes, см. в статье Сетка событий в Kubernetes — схемы событий.