Как просмотреть параметры публикации неудавшихся запросов в управлении API Azure?
Мы отлаживаем наши системы, чтобы увидеть сбойные лазурные сообщения и хотим узнать, почему они вообще не сработали.
Диагностика AzureMetric и Azure не помогают, когда мы выполняем запрос через OMS.
Где мы видим, какие ценности заставили нас потерпеть неудачу?
Наш запрос OMS
поиск * | где Ресурс == "xxx-API-NONPRODUCTION" | где Type == "AzureDiagnostics"
Ошибка образца из OMS
$ table AzureDiagnostics TenantId yyy-0a7b-4833-8fb6-yyy SourceSystem Azure TimeGenerated [UTC] 2017-12-20T15: 05: 00.845Z Тип AzureDiagnostics Environment_s Конфигурация PROD lastError_source_s LastError_source_s Операция lastError_reason_s Операция NotFound_Signed_Text_Signed_Signed_Signed_Signed_Signed_Signed_Signed_Signed. lastError_section_s backend OperationName Microsoft.ApiManagement / GatewayLogs Категория GatewayLogs CallerIPAddress 51.yyy.34.yyy location_s Западный западный метод method_s GET url_s https://xxx-api-nonproduction.azure-api.net/qa/user/api/zzz/UserAccountExistsByEmailAddressAndIsEnabled/2bdel.qags2012@yopmail.com cache_s нет apiId_s tttt productId_s tttt userId_s 1 apimSubscriptionId_s vvvv ResourceId /SUBSCRIPTIONS/vvvv-2F08-4DED-92B8-vvvv/RESOURCEGROPHRID_PRIDGE_PRIDGE_RUSSWRX_PRID_WRKSWC -NONPRODUCTION SubscriptionId VVV-VVVV-VVV-VVV-VVV ResourceGroup ххх-ОСНОВНОЙ-непроизводственных ResourceProvider MICROSOFT.APIMANAGEMENT ресурсов уууу-API-непроизводственных Тип_ресурса ОБСЛУЖИВАНИЕ CorrelationId VVV-VVV-VVV-VVV-VVVVV isRequestSuccess_b ложные Level_d 4 EventId_d 222 DurationMs 0 responseCode_d 404 responseSize_d 130
1 ответ
По умолчанию служба управления API не регистрирует тело запроса или заголовки, что можно сделать, но с некоторой дополнительной работой. Вам нужно будет использовать политику log-to-eventhub, чтобы отправить тело в eventhub и прочитать его позже для входа. Или вы можете сохранить тело запроса в переменную и вернуть его в качестве ответа на запрос из раздела об ошибках, если запрос не выполнен.
Но из вашего журнала я вижу, что вы получаете OperationNotFound: Невозможно сопоставить входящий запрос с операцией. Это означает, что URL был вызван в сервисе APIM, который не соответствует ни одной операции, определенной в API. Рассматриваемый URL-адрес: https://xxx-api-nonproduction.azure-api.net/qa/user/api/zzz/UserAccountExistsByEmailAddressAndIsEnabled/2bdel.qags2012@yopmail.com
Если мы предполагаем, что "qa/user" является суффиксом API, то "/zzz/UserAccountExistsByEmailAddressAndIsEnabled/2bdel.qags2012@yopmail.com" должен соответствовать шаблону URL одной из операций в таком API, и такая операция должна иметь метод, установленный как GET, так как это то, что называется.