当我从我的Android应用程序运行post request api时,我收到以下错误“来自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
答案 0 :(得分:3)
X-Cache: Miss from cloudfront
不错误。
它只是一个信息标题,当看到API网关时,它根本就没有任何意义 - 这只是CloudFront 总是为API提供一些前端服务这一事实的副作用网关。这种安排由API网关提供和控制,因此没有任何配置(也没有任何可以删除)。
在这种情况下,您应该忽略此响应标头 - 问题出在其他地方。
正如您所指出的那样,当您使用Postman时,消息仍然存在,但请求的工作方式与该环境中的应用完全相同。即使没有上述背景信息,这个事实也应该表明这个标题是无关的,因为无论请求是否成功执行后端操作都存在。
同样,如果您有一个抛出HTTP错误代码的后端失败,标题会显示X-Cache: Error from CloudFront
。这意味着只有CloudFront返回错误响应,在这种情况下,它来自上游 - 如果错误响应来自API网关,那么这样的标题不意味着CloudFront是生成错误响应。