Схема 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 со службой "Сетка событий".