Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
ОБЛАСТЬ ПРИМЕНЕНИЯ: все уровни управления API
В этой статье описывается, как протоколировать события Управления API с использованием Центров событий Azure.
Центры событий Azure — это высокомасштабируемая служба приема данных, которая может обрабатывать миллионы событий в секунду, позволяя вам обрабатывать и анализировать огромное количество данных, создаваемых подключенными устройствами и приложениями. Центры событий действуют как "главный вход" для потоков событий, и после поступления данных в концентратор событий, они могут быть преобразованы и сохранены с помощью любого поставщика аналитики в режиме реального времени или адаптеров пакетной обработки и хранения. Центры событий отделяют создание потока событий от потребления этих событий, чтобы потребители событий могли обращаться к событиям по собственному расписанию.
Примечание.
В настоящее время эта функция недоступна в рабочих областях.
Предварительные условия
- Экземпляр службы управления API. Если у вас его нет, см. Создание экземпляра службы Управления API.
- Пространство имен Центров событий Azure и концентратор событий. Для подробных инструкций см. "Создание пространства имен и концентратора событий в Центрах событий с помощью портала Azure".
Примечание.
Ресурс Центров событий может находиться в другой подписке или даже в другом клиенте, отличном от ресурса Управление API
Настройка доступа к концентратору событий
Чтобы логировать события в концентраторе событий, необходимо настроить учетные данные для доступа из управления API. Управление API поддерживает один из двух следующих механизмов доступа:
- Управляемое удостоверение для экземпляра API Management (рекомендуется)
- Строка подключения для Event Hubs
Примечание.
По возможности корпорация Майкрософт рекомендует использовать учетные данные управляемого удостоверения для повышения безопасности.
Вариант 1: Настройка управляемой идентификации в службе API Management
Включите назначаемое системой или назначаемое пользователем управляемое удостоверение для Управления API в экземпляре Управления API.
- Если вы включаете управляемое удостоверение, назначаемое пользователем, запишите идентификатор клиента удостоверения.
Назначьте удостоверение роли отправителя данных Azure Event Hubs, ограниченной областью пространства имен Центров событий или конкретного концентратора событий, используемого для ведения журнала. Для назначения этой роли можно использовать портал 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. Логгер с учетными данными для строки подключения
Предварительные требования см. в разделе "Настройка строки подключения для центров событий".
Примечание.
По возможности Microsoft рекомендует настраивать логгер с учетными данными управляемого удостоверения. См. статью «Настройка средства ведения журнала с учетными данными управляемого удостоверения», ранее в этой статье.
В следующем примере используется командлет 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 с Средствами управления API Azure как обходное решение, чтобы обойти ограничение в 200 КБ. Дополнительные сведения см. в этой статье.
Просмотрите логи в Event Hubs с помощью Azure Stream Analytics
Вы можете просмотреть журнал в Центрах событий с помощью запросов Azure Stream Analytics.
- На портале Azure перейдите к концентратору событий, в который средство ведения журнала отправляет события.
- В разделе Компоненты перейдите на вкладку Обработка данных.
- В карточке событий "Включить аналитику в режиме реального времени" нажмите кнопку "Пуск".
- Вы можете просмотреть журнал на вкладке Предпросмотр ввода. Если отображаемые данные не являются актуальными, выберите Обновить, чтобы просмотреть последние события.
Связанный контент
- Узнайте больше о Центре событий Azure
- Дополнительные сведения об интеграции Управления API и Центров событий
- Узнайте больше об интеграции с Azure Application Insights.