如何识别在 Azure API 管理中收到的请求



我们有一个生产问题,订单提交两次。目前,我们有一个用于订单的API,我们正在使用API管理将其公开给客户端,并且在这些策略中,我们有面向实际客户的URL映射策略。

现在,我们的实际 API 收到了 2 个请求,所以我们认为客户提交了两次,但他们确认他们没有提交两次,所以 API 管理存在问题,触发了 2 个请求。

如何识别 API 管理收到的请求? API 管理是否有可能触发请求两次?

欣赏任何指示

在 APIM 中触发请求两次的唯一方法是通过重试策略或使用 SendRequest 手动操作。否则,它应该是客户端调用您的 API 两次。APIM 中的每个请求都会获取其自己的唯一 ID,可在策略中作为上下文访问。RequestId,这是跟踪和识别它们的主要方法。但是这些 ID 是在 APIM 本身内部生成的,因此只有在跟踪来自 APIM 和后端的调用时才有用。

现在,最好的选择是尝试按客户端 IP、方法、uri 和时间范围识别请求。APIM 允许您使用我上面提到的数据在 JSON 或 CSV 中获取特定时间段的日志(如果保持简短更好)。为此,请查看byRequest报告(https://learn.microsoft.com/en-us/rest/api/apimanagement/reports#ReportByRequest),获取JSON/CSV并尝试识别感兴趣的呼叫,

将来,可以考虑将服务载入 Azure 监视器 (https://learn.microsoft.com/en-us/azure/api-management/api-management-howto-use-azure-monitor) 或日志分析,这些提供了更简单的遍历日志的方法。

最新更新