无法在 AWS API 网关中将 X-Forwarded-For 设置为 sourceIp

无法在 AWS API 网关中将 X-Forwarded-For 设置为 sourceIp

我已将 Amazon 的 API 网关置于现有 HTTP API 的前面。该 API 有自己的日志记录功能,需要访问源 IP 地址,但我似乎无法将源 IP 映射到仪表板的“集成请求”选项卡中的 X-Forwarded-For 标头。

API 网关文档提到了$context.identity.sourceIp,但这似乎仅在正文模板中可用。就我而言,我尝试直接将查询映射到后端 HTTP API,因此我没有正文模板。

集成请求页面中的 HTTP 标头设置不会接受该$context变量,遗憾的是,出现错误:

指定了无效的映射表达式:验证结果:警告:[],错误:[指定了无效的映射表达式:$context.identity.sourceIp]

并声称只能访问来自请求的 HTTP 标头、来自请求的查询字符串参数或来自请求的路径参数。

这在 API 网关中实际上是不可能的吗? 似乎在包装现有 HTTP API 时这是一个非常标准的问题。

答案1

删除$请求参数映射中的登录:

requestParameters:
    integration.request.header.X-Forwarded-For: "context.identity.sourceIp"
    integration.request.header.User-Agent: "context.identity.userAgent"

相关内容