1

我们正在调试我们的系统以查看失败的 azure 帖子,并想了解它们最初失败的原因。

当我们通过 OMS 运行查询时,AzureMetric 和 Azure 诊断没有帮助。

我们在哪里看到哪些价值观让我们失败了?

我们的 OMS 查询

搜索 * | 其中资源 == "xxx-API-NONPRODUCTION" | 其中类型 == "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_reason_s OperationNotFound lastError_message_s 无法将传入请求与操作匹配。lastError_section_s backend OperationName Microsoft.ApiManagement/GatewayLogs Category GatewayLogs CallerIPAddress 51.yyy.34.yyy location_s UK West method_s GET url_s https://xxx-api-nonproduction.azure-api.net/qa/user/api/zzz/UserAccountExistsByEmailAddressAndIsEnabled/ 2bdel.qags2012@yopmail.com cache_s none 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 ResourceGroup xxx-CORE-NONPRODUCTION ResourceProvider MICROSOFT.APIMANAGEMENT Resource uuuu-API-NONPRODUCTION ResourceType SERVICE CorrelationId vvv-vvv-vvv-vvv-vvvvv isRequestSuccess_b false Level_d 4 EventId_d 222 DurationMs 0 responseCode_d 404 responseSize_d 130

4

1 回答 1

1

默认情况下,API 管理服务不记录请求正文或标头,这可以完成,但需要一些额外的工作。您必须使用 log-to-eventhub 策略将正文发送到 eventhub 并稍后在此处读取以进行记录。或者,您可以将请求正文保存到变量中,并在请求失败时将其作为错误部分的响应投标返回。

但是从您的日志中,我可以看到您得到 OperationNotFound: Unable to match incoming request to an operation。这意味着在 APIM 服务上调用的 URL 与 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”应该匹配此类 API 中操作之一的 URL 模板,并且此类操作必须将方法设置为 GET,因为这就是所谓的。

于 2017-12-21T18:48:44.813 回答