API 网关响应标头中的 x-amz-apigw-id?

jeb*_*avi 7 aws-api-gateway api-gateway

大家好,我正在使用 API 网关来公开 API,当我调用 API 时,它会返回header调用x-amz-apigw-id=some_value。这个标题是什么意思?

这不等于我的API网关ID,我发现一些博客说这是base64编码字符串。我尝试解码,但没有检索到我的原始 API 网关 ID

tra*_*ark 3

我只在官方文档中找到了一些相关信息,但是这篇 Medium 文章更有帮助:

\n
\n

与许多 AWS 服务一样,API Gateway 也会发出 API Gateway 特定的标头。REST API 的响应应包含 \xe2\x80\x9cx-amzn-requestid\xe2\x80\x9d (UUID 样式请求 id)和 \xe2\x80\x9cx-amz-apigw-id\xe2\x80\x9d (扩展请求 ID。如果响应不包含这些标头,则意味着请求永远不会到达 API 网关数据平面,并且响应来自其他地方,例如您的代理或 API 端点。

\n
\n

官方文档在这里简单提到了这一点

\n
\n

作为最佳实践,请在日志格式中包含 $context.requestId 和 $context.extendedRequestId。$context.requestId 记录 x-amzn-RequestId 标头中的值。客户端可以覆盖 x-amzn-RequestId 标头中的值。API Gateway 在 x-amzn-RequestId 响应标头中返回此请求 ID。$context.extendedRequestId 是 API Gateway 生成的唯一 ID。API Gateway 在 x-amz-apigw-id 响应标头中返回此请求 ID。API 调用者无法提供或覆盖此请求 ID。

\n
\n

总之:

\n
    \n
  • 标头的存在意味着请求已发送至 API 网关
  • \n
  • 标头的值是一个“扩展请求 ID”值,映射回$context.extendedRequestId后端以进行日志记录
  • \n
  • 该值不能被调用者修改或覆盖
  • \n
\n

坦率地说,鉴于其实际内容/目的,“apigw-id”部分有点令人困惑。

\n