来自 CloudFront 的连续未命中

Continuous Miss from CloudFront

当我从我的 android 应用程序 运行 post 请求 api 时,我收到以下错误 "Miss from CloudFront"。虽然当我从 postman 测试 api 时它给出了相同的错误但它确实更新了 DynamoDb 中的详细信息但是当我 运行 它在移动应用程序上它给出了相同的错误但没有DynamoDB 中的更新。并且还需要使用 API 网关配置 CloudFront 吗?

以下是我的 android 监视器详细输出:

content-type: application/json
content-length: 982
date: Sat, 06 May 2017 17:57:56 GMT
x-amzn-requestid: 88a875cd-3285-11e7-959a-1bb59a5dfddb
x-amzn-trace-id: sampled=0;root=1-590e0ea4-46e2415a5816996f8f61985f
x-cache: Miss from cloudfront
via: 1.1 7b637ad78977549938b508611f792222.cloudfront.net (CloudFront)
x-amz-cf-id: PA8VzPLzR823OAVOxT9bWgyIHdyue9-CAnXyLrWJY_7WMSB_xSdCEw==
OkHttp-Sent-Millis: 1494093475993
OkHttp-Received-Millis: 1494093476302
Status code: 200

X-Cache: Miss from cloudfront 不是 错误。

它只是一个信息 header,当与 API 网关一起查看时,它根本没有任何意义 -- 它只是 CloudFront always 这一事实的副作用 为 API 网关提供一些 front-end 服务。此安排由 API 网关提供和控制,因此无需配置(也无需删除)。

在这种情况下,您应该忽略此响应 header -- 问题出在其他地方。

正如您自己所指出的,当使用 Postman 时,消息仍然存在,但请求在该环境中完全按照应有的方式工作。即使没有上述背景信息,这个事实也应该表明这个 header 是无关的,因为它存在请求是否成功执行 back-end 操作。

类似地,如果您遇到 back-end 故障并抛出 HTTP 错误代码,header 会显示 X-Cache: Error from CloudFront。这仅意味着 CloudFront 正在返回一个错误响应,在这种情况下,该响应来自上游——如果错误响应来自 API 网关,那么这样的 header 不会 表示 CloudFront 正在 生成 错误响应。