Поделиться через


Обработчики событий и назначения в службе "Сетка событий 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.

  1. Воспользуйтесь REST API версии 2020-10-15-preview.
  2. Триггер службы "Сетка событий Azure" для Функций Azure не поддерживается. Для доставки событий в Функции Azure можно использовать тип назначения "Веб-перехватчик".
  3. Расположение недоставленных писем не поддерживается. Это означает, что вы не можете использовать properties.deadLetterDestination полезные данные подписки на события.
  4. Гибридные подключения Azure Relay в качестве назначения пока не поддерживаются.
  5. Поддерживается только схема CloudEvents. Поддерживаемое значение схемы — CloudEventSchemaV1_0. Схема облачных событий является расширяемой и основана на открытых стандартах.
  6. Метки (properties.labels) не применяются к Сетке событий в Kubernetes. Поэтому они недоступны.
  7. Доставка с использованием удостоверения ресурса не поддерживается. Поэтому все свойства для удостоверения подписки на события не поддерживаются.
  8. Проверка конечной точки назначения еще не поддерживается.

Фильтрация событий в подписках на события

Другим важным аспектом настройки подписки на события является выбор событий, которые должны быть доставлены в назначение. Дополнительные сведения см. в статье Фильтрация событий.

Примеры конфигураций назначения

Ниже приведены примеры распространенных конфигураций в зависимости от предполагаемого назначения.

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>"
          }
        }
      }
    }
    

Следующие шаги