如何在Azure api管理中查看失败的请求发布参数?

时间:2017-12-20 15:20:13

标签: azure azure-api-management azure-oms

我们正在调试我们的系统,以查看失败的天蓝色帖子,并希望了解它们首先失败的原因。

当我们通过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

1 个答案:

答案 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,因为这是所谓的。