【发布时间】:2020-03-17 13:49:02
【问题描述】:
我们有如下的api设置
Development : ASP NET Core 2.1 C#
Backend api deployment : In AWS through docker
Gateway : AWS API Gateway which contains custom lambda Authorizer
要求:在后端 api 中获取 API Gateway 请求 id 用于日志记录和请求跟踪。
当请求通过 API 网关时,它会生成一个请求 ID。这是由网关在“x-amzn-RequestId”中的响应标头中设置的,并且可以在客户端(如邮递员)中可见。我发现这个 id 在 APIGatewayCustomAuthorizerRequest 对象的 lambda 授权器中也可用 - .RequestContext.RequestId,我可以将其用于授权器日志记录。
现在请求被授权,实际的 api 被调用。我想在这个 api 中使用相同的请求 id 来记录日志。最终 - 通过具有相同请求的 gateway-aurhorizer-api 识别请求的旅程并生成统计信息。
在api代码中,我们还实现了APIControllerActionFilter的OnActionExecuting()。我想知道网关请求ID是否在这里可用?或者以任何方式将 id 从网关传递到实际的 api ?
【问题讨论】:
标签: docker aws-api-gateway asp.net-core-2.1