Как регистрировать события в Центрах событий Azure при использовании службы управления API Azure
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни Управление API
В этой статье приведены сведения о регистрации событий Управления API в журнале с помощью Центров событий Azure.
Центры событий Azure — это высокомасштабируемая служба приема данных, которая может обрабатывать миллионы событий в секунду, позволяя вам обрабатывать и анализировать огромное количество данных, создаваемых подключенными устройствами и приложениями. Центры событий выступают в качестве "главного входа"для событий конвейера. После того как данные поступили в концентратор событий, они могут быть преобразованы и сохранены с использованием любого поставщика аналитики в режиме реального времени или адаптера пакетной обработки или хранения. Центры событий отделяют создание потока событий от потребления этих событий, чтобы потребители событий могли обращаться к событиям по собственному расписанию.
Примечание.
В настоящее время эта функция недоступна в рабочих областях.
Необходимые компоненты
- Экземпляр службы "Управление API". Если у вас его нет, см. статью Создание экземпляра службы Управления API.
- Пространство имен Центров событий Azure и концентратор событий. Подробные инструкции см. в разделе "Создание пространства имен Центров событий" и концентратора событий с помощью портал Azure.
Примечание.
Ресурс Центров событий может находиться в другой подписке или даже в другом клиенте, отличном от ресурса Управление API
Настройка доступа к концентратору событий
Чтобы регистрировать события в концентраторе событий, необходимо настроить учетные данные для доступа из Управление API. Управление API поддерживает один из двух следующих механизмов доступа:
- Управляемое удостоверение для экземпляра Управление API (рекомендуется)
- Строка подключения Центров событий
Примечание.
По возможности корпорация Майкрософт рекомендует использовать учетные данные управляемого удостоверения для повышения безопасности.
Вариант 1. Настройка управляемого удостоверения Управление API
Включите назначаемое системой или назначаемое пользователем управляемое удостоверение для Управления API в экземпляре Управления API.
- Если вы включаете управляемое удостоверение, назначаемое пользователем, запишите идентификатор клиента удостоверения.
Назначьте удостоверение роли отправителя данных Центры событий Azure области пространства имен Центров событий или концентратора событий, используемого для ведения журнала. Для назначения этой роли можно использовать портал Azure или другие инструменты Azure.
Вариант 2. Настройка центров событий строка подключения
Сведения о создании строка подключения Центров событий см. в разделе "Получение строка подключения Центров событий".
- Вы можете использовать строка подключения для пространства имен Центров событий или для конкретного концентратора событий, используемого для ведения журнала из Управление API.
- Политика общего доступа для строка подключения должна включать по крайней мере разрешения отправки.
Создание средства ведения журнала для управления API
Следующим шагом является настройка средства ведения журнала в службе Управление API, чтобы он смог записывать события в концентратор событий.
Создание и управление средствами ведения журнала Управление API с помощью REST API Управление API или с помощью средств, включая Azure PowerShell, шаблон Bicep или шаблон Управления ресурсами Azure.
Вариант 1. Средство ведения журнала с учетными данными управляемого удостоверения (рекомендуется)
Вы можете настроить средство ведения журнала Управление API в концентраторе событий с помощью учетных данных управляемого удостоверения, назначаемого системой или назначаемого пользователем.
Средство ведения журнала с учетными данными управляемого удостоверения, назначаемого системой
Предварительные требования см. в разделе "Настройка Управление API управляемого удостоверения".
Используйте средство ведения журнала Управление API — создание или обновление REST API со следующим текстом запроса.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with system-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"SystemAssigned",
"name":"<EventHubName>"
}
}
}
Средство ведения журнала с учетными данными управляемого удостоверения, назначаемого пользователем
Предварительные требования см. в разделе "Настройка Управление API управляемого удостоверения".
Используйте средство ведения журнала Управление API — создание или обновление REST API со следующим текстом запроса.
{
"properties": {
"loggerType": "azureEventHub",
"description": "Event Hub logger with user-assigned managed identity",
"credentials": {
"endpointAddress":"<EventHubsNamespace>.servicebus.windows.net",
"identityClientId":"<ClientID>",
"name":"<EventHubName>"
}
}
}
Вариант 2. Средство ведения журнала с помощью учетных данных строка подключения
Предварительные требования см. в разделе "Настройка центров событий" строка подключения.
Примечание.
По возможности корпорация Майкрософт рекомендует настроить средство ведения журнала с учетными данными управляемого удостоверения. См. статью "Настройка средства ведения журнала с учетными данными управляемого удостоверения" ранее в этой статье.
В следующем примере используется командлет New-AzApiManagementLogger для создания средства ведения журнала в концентраторе событий путем настройки строка подключения.
# API Management service-specific details
$apimServiceName = "apim-hello-world"
$resourceGroupName = "myResourceGroup"
# Create logger
$context = New-AzApiManagementContext -ResourceGroupName $resourceGroupName -ServiceName $apimServiceName
New-AzApiManagementLogger -Context $context -LoggerId "ContosoLogger1" -Name "ApimEventHub" -ConnectionString "Endpoint=sb://<EventHubsNamespace>.servicebus.windows.net/;SharedAccessKeyName=<KeyName>;SharedAccessKey=<key>" -Description "Event hub logger with connection string"
Настройка политики log-to-eventhub
После настройки средства ведения журнала в Управление API вы можете настроить политику log-to-eventhub для регистрации нужных событий. Например, используйте log-to-eventhub
политику в разделе политики входящего трафика для регистрации запросов или в разделе политики исходящего трафика для регистрации ответов.
Перейдите к экземпляру службы управления API.
Выберите API, а затем выберите API, в который нужно добавить политику. В этом примере мы добавляем политику Echo API в продукт Unlimited.
Выберите Все операции.
В верхней части экрана выберите вкладку "Конструктор ".
В окне обработки входящего трафика или исходящего трафика щелкните
</>
значок (редактор кода). Дополнительные сведения см. в статье Настройка или изменение политик службы управления API Azure.Наведите указатель мыши на раздел политики
inbound
илиoutbound
.В окне справа выберите Дополнительные политики>Log to Event Hub (Регистрация в концентраторе событий). В результате будет вставлен шаблон инструкции политики
log-to-eventhub
.<log-to-eventhub logger-id="logger-id"> @{ return new JObject( new JProperty("EventTime", DateTime.UtcNow.ToString()), new JProperty("ServiceName", context.Deployment.ServiceName), new JProperty("RequestId", context.RequestId), new JProperty("RequestIp", context.Request.IpAddress), new JProperty("OperationName", context.Operation.Name) ).ToString(); } </log-to-eventhub>
- Замените
logger-id
именем средства ведения журнала, созданного на предыдущем шаге. - Вы можете использовать любое выражение, которое возвращает строку в качестве значения для элемента
log-to-eventhub
. В этом примере регистрируется строка в формате JSON, содержащая дату и время, имя службы, идентификатор запроса, IP-адрес запроса и имя операции.
- Замените
Нажмите кнопку "Сохранить", чтобы сохранить обновленную конфигурацию политики. После сохранения политика активна, а события регистрируются в указанном концентраторе событий.
Примечание.
Максимальный поддерживаемый размер сообщения, отправляемого в концентратор событий из этой политики службы "Управление API", составляет 200 килобайт (КБ). Если сообщение, отправленное в концентратор событий, превышает 200 КБ, оно будет автоматически усечено, а усеченное сообщение будет передано в концентратор событий. Для больших сообщений рекомендуется использовать служба хранилища Azure с Azure Управление API в качестве обходного решения, чтобы обойти ограничение в 200 КБ. Дополнительные сведения см. в этой статье.
Предварительный просмотр журнала в Центрах событий с помощью Azure Stream Analytics
Вы можете предварительно просмотреть журнал в Центрах событий с помощью запросов Azure Stream Analytics.
- На портале Azure перейдите к концентратору событий, в который средство ведения журнала отправляет события.
- В разделе Компоненты перейдите на вкладку Обработка данных.
- В карточке событий "Включить аналитику в режиме реального времени" нажмите кнопку "Пуск".
- Вы можете просмотреть журнал на вкладке Предпросмотр ввода. Если отображаемые данные не являются актуальными, выберите Обновить, чтобы просмотреть последние события.
Следующие шаги
- Дополнительные сведения о Центры событий Azure
- Дополнительные сведения об интеграции Управление API и Центров событий
- Узнайте больше об интеграции с Azure Application Insights.