Схема CloudEvents версии 1.0 со службой "Сетка событий Azure"

Сетка событий Azure изначально поддерживает события в Реализация JSON для привязки протокола CloudEvents версии 1.0 и ПРОТОКОЛА HTTP. CloudEventsоткрытая спецификация для описания данных о событиях.

CloudEvents упрощает взаимодействие, предоставляя общую схему событий для публикации и использования событий на основе облака. Эта схема предоставляет обычные средства, стандартные способы маршрутизации и обработки событий, а также универсальные методы десериализации внешней схемы событий. Общая схема позволяет легко интегрировать работу на разных платформах.

Создание CloudEvents — это совместная работа нескольких компаний, включая корпорацию Майкрософт и компанию Cloud Native Computing Foundation. В настоящее время доступна версия 1.0.

В этой статье описывается использование схемы CloudEvents с Сеткой событий.

Пример события с использованием схемы CloudEvents

Ниже приведен пример события Хранилище BLOB-объектов Azure в формате CloudEvents:

{
    "specversion": "1.0",
    "type": "Microsoft.Storage.BlobCreated",  
    "source": "/subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.Storage/storageAccounts/{storage-account}",
    "id": "9aeb0fdf-c01e-0131-0922-9eb54906e209",
    "time": "2019-11-18T15:13:39.4589254Z",
    "subject": "blobServices/default/containers/{storage-container}/blobs/{new-file}",    
    "data": {
        "api": "PutBlockList",
        "clientRequestId": "4c5dd7fb-2c48-4a27-bb30-5361b5de920a",
        "requestId": "9aeb0fdf-c01e-0131-0922-9eb549000000",
        "eTag": "0x8D76C39E4407333",
        "contentType": "image/png",
        "contentLength": 30699,
        "blobType": "BlockBlob",
        "url": "https://gridtesting.blob.core.windows.net/testcontainer/{new-file}",
        "sequencer": "000000000000000000000000000099240000000000c41c18",
        "storageDiagnostics": {
            "batchId": "681fe319-3006-00a8-0022-9e7cde000000"
        }
    }
}

Подробное описание доступных полей, их типов и определений в CloudEvents версии 1.0 можно изучить здесь.

Значения заголовков для событий, доставляемых в схеме CloudEvents и схеме "Сетка событий", совпадают, за исключением элемента content-type. Для схемы CloudEvents значение заголовка — "content-type":"application/cloudevents+json; charset=utf-8". Для схемы "Сетка событий" значение заголовка — "content-type":"application/json; charset=utf-8".

Настройка CloudEvents в Сетке событий

Службу "Сетка событий" можно использовать для ввода и вывода событий в схеме CloudEvents. Кроме того, CloudEvents можно использовать для системных событий, таких как события хранилища BLOB-объектов и Центра Интернета вещей, а также настраиваемые события. Помимо поддержки CloudEvents, Служба "Сетка событий" поддерживает собственный, нетекстенсивный, но полностью функциональный формат событий Сетки событий. В следующей таблице описывается преобразование, поддерживаемое при использовании CloudEvents и форматов Сетки событий в качестве входной схемы в разделах и в качестве выходной схемы в подписках на события. Выходная схема Сетки событий не может использоваться при использовании CloudEvents в качестве входной схемы, так как CloudEvents поддерживает атрибуты расширения, которые не поддерживаются схемой сетки событий.

Входная схема Выходная схема
Формат CloudEvents Формат CloudEvents
Формат сетки событий Формат CloudEvents
Формат сетки событий Формат сетки событий

Для всех схем событий сетка событий требует проверки при публикации в разделе сетки событий и при создании подписки на события. Дополнительные сведения см. в разделе Сетка событий: безопасность и проверка подлинности.

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

См. статью Использование схемы CloudEvents версии 1.0 со службой "Сетка событий".