Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Пользовательская тема Event Grid — это конечная точка, куда ваши приложения отправляют свои события, чтобы Event Grid мог направлять эти события заинтересованным подписчикам. В этой статье показано, как публиковать события в пользовательскую тему с помощью ключей доступа, которые аутентифицируют ваши запросы без настройки Microsoft Entra ID. Вы получаете конечную точку темы и ключ доступа, форматируете полезную нагрузку события, отправляете примерное событие и просматриваете ответ.
Соглашение об уровне обслуживания (SLA) применяется только к постам, соответствующим ожидаемому формату.
Необходимые условия
- Пользовательский раздел Сетка событий Azure. Чтобы создать его, см. раздел «Отправить пользовательские события на веб-конечную точку с помощью портала Azure».
- Azure CLI, Azure PowerShell или доступ к порталу Azure для получения конечной точки раздела и ключа доступа.
- Инструмент, способный отправлять запросы HTTP POST, такие как
curl.
Примечание.
Аутентификация Microsoft Entra обеспечивает лучшую поддержку аутентификации, чем аутентификация с помощью ключей доступа или токенов с использованием общего доступа (SAS). Используя аутентификацию Microsoft Entra, провайдер идентификации Microsoft Entra проверяет личность, поэтому вы не обрабатываете ключи в коде. Вы также получаете выгоду от функций безопасности, встроенных в платформа удостоверений Майкрософт, таких как Conditional Access, которые помогают повысить безопасность вашего приложения. Дополнительные сведения см. в разделе "Проверка подлинности клиентов публикации с помощью идентификатора Microsoft Entra".
Получение конечной точки темы
Чтобы опубликовать события в пользовательскую тему, отправьте запрос HTTP POST с помощью следующего формата URI: https://<topic-endpoint>?api-version=2018-01-01. Например, допустимый URI — https://exampletopic.westus2-1.eventgrid.azure.net/api/events?api-version=2018-01-01. Чтобы получить конечную точку для пользовательской темы, используйте портал Azure, Azure CLI или Azure PowerShell.
Найдите конечную точку темы на вкладке Обзор страницы Event Grid Topic в портале Azure.
Получение ключа доступа
Добавьте в запрос значение заголовка aeg-sas-key, содержащее ключ для аутентификации. Например, допустимое значение заголовка — aeg-sas-key: xxxxxxxxxxxxxxxxxxxxxxx. Чтобы получить ключ для пользовательской темы, используйте Azure portal, Azure CLI или Azure PowerShell.
Чтобы получить ключ доступа для пользовательской темы, выберите вкладку «Ключи доступа» на странице «Тема сетки событий» в портале Azure.
Форматирование полезной нагрузки события
Форматируйте каждое событие как JSON-объект. Поля верхнего уровня совпадают со стандартными событиями, определяемыми ресурсами, а свойство data содержит свойства, уникальные для вашей пользовательской темы. Как издатель, вы определяете содержимое data объекта. Для описания каждого свойства см. Сетка событий Azure event schema.
[
{
"id": string,
"eventType": string,
"subject": string,
"eventTime": string-in-date-time-format,
"data":{
object-unique-to-each-publisher
},
"dataVersion": string
}
]
Имейте в виду эти ограничения по размеру при сборке полезной нагрузки:
- Массив событий может иметь общий размер до 1 МБ.
- Максимальный размер для одного события — 1 МБ. За события размером более 64 КБ взимается плата блоками по 64 КБ.
- Одна партия может содержать максимум 5 000 событий.
Следующий пример показывает допустимую полезную нагрузку для событий:
[{
"id": "1807",
"eventType": "recordInserted",
"subject": "myapp/vehicles/motorcycles",
"eventTime": "2017-08-10T21:03:07+00:00",
"data": {
"make": "Ducati",
"model": "Monster"
},
"dataVersion": "1.0"
}]
Отправка примера события
В этом разделе показано, как отправить пример события в пользовательский раздел.
В портал Azure запустите Cloud Shell.
В Cloud Shell выполните команды из Azure PowerShell или Azure CLI в сеансе Bash или PowerShell .
Просмотр ответа
После того как вы отправите сообщение в конечную точку темы, вы получите ответ. Ответ — это стандартный код ответа HTTP. Ниже приведены некоторые распространенные ответы:
| Результат | Ответ |
|---|---|
| Успех | 200 OK (Запрос выполнен успешно) |
| Неправильный формат данных события | 400 — недопустимый запрос |
| Недопустимый ключ доступа | 401 — не авторизовано |
| Неправильная конечная точка | 404 Не найдено |
| Массив или событие превышает допустимый размер | 413 Полезные данные слишком велики |
В случае ошибок тело сообщения имеет следующий формат:
{
"error": {
"code": "<HTTP status code>",
"message": "<description>",
"details": [{
"code": "<HTTP status code>",
"message": "<description>"
}]
}
}
Связанный контент
- Отслеживание доставки сообщений в Event Grid: Узнайте, как отслеживать и устранять неполадки доставки сообщений.
- Безопасность и проверка подлинности сетки событий. Узнайте, как защитить события с помощью ключей проверки подлинности.
- Схема подписки сетки событий: пошаговые инструкции по созданию подписки сетки событий.