我们正在调试我们的系统,以查看失败的天蓝色帖子,并希望了解它们首先失败的原因。
当我们通过OMS运行查询时,AzureMetric和Azure诊断程序没有帮助。
我们在哪里看到哪些值让我们失败?
我们的OMS查询
搜索* |其中Resource ==“xxx-API-NONPRODUCTION” |其中Type ==“AzureDiagnostics”
来自OMS的示例错误
$表 AzureDiagnostics TenantId YYY-0a7b-4833-8fb6-YYY SourceSystem 天蓝 TimeGenerated [UTC] 2017-12-20T15:05:00.845Z 类型 AzureDiagnostics Environment_s PROD lastError_source_s 组态 lastError_reason_s OperationNotFound lastError_message_s 无法将传入请求与操作匹配。 lastError_section_s 后端 OperationName Microsoft.ApiManagement / GatewayLogs 类别 GatewayLogs CallerIPAddress 51.yyy.34.yyy location_s 英国西部 方法 得到 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/RESOURCEGROUPS/xxx-CORE-NONPRODUCTION/PROVIDERS/MICROSOFT.APIMANAGEMENT/SERVICE/xxx-API-NONPRODUCTION SubscriptionId VVV-VVVV-VVV-VVV-VVV 资源组 XXX-CORE-非生产性 ResourceProvider MICROSOFT.APIMANAGEMENT 资源 UUUU-API非生产性 的ResourceType 服务 的correlationID VVV-VVV-VVV-VVV-vvvvv isRequestSuccess_b 假 Level_d 4 EventId_d 222 DURATION毫秒 0 responseCode_d 404 responseSize_d 130
答案 0 :(得分:0)
默认情况下,API管理服务不会记录请求正文或标题,这可以通过一些额外的工作来完成。您必须使用log-to-eventhub策略将body发送到eventhub并稍后在那里读取以进行记录。或者您可以将请求正文保存到变量中,并在请求失败时将其作为响应从错误的部分返回。
但是从你的日志中我可以看到你得到OperationNotFound:无法将传入的请求与操作相匹配。这意味着在APIM服务上调用了URL,该服务与API中定义的任何操作都不匹配。相关网址为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"应匹配此类API中某个操作的URL模板,并且此类操作必须将方法设置为GET,因为这是所谓的。