小编kna*_*ada的帖子

AWS API Gateway GET 响应始终缓存

更新:我想通了,请参阅下面的回答帖子。

我有一个 AWS API Gateway api,定义了各种资源和各种 GET 和 POST 方法。

一切正常。POST 正在通过。GET 返回一个响应(JSON 负载),但返回的值似乎是一个缓存值。

我的 GET api 调用了一个向 RDS 调用查询的 Lambda 函数。我可以确认我的回答是陈旧的,因为:

  • 当我手动查询 RDS 时,我得到更新的值
  • 我启用了 Cloud Watch 日志并且没有调用 lambda 函数(我相信我已经正确设置了它,因为当我测试调用 lambda 时,我可以获得 Cloud Watch 日志)

它确实刷新了一次,但我认为那是因为我超过了一些(如 1 小时)缓存阈值或其他什么。

我了解 API Gateway 在幕后生成 CloudFront。我觉得这就是缓存的作用。但这只是猜测,我没有证据。也许某种默认缓存TTL?

我显然在 API Gateway 阶段关闭了缓存。我什至尝试启用它,将 TTL 设置为 1,刷新缓存,然后再次禁用缓存。该测试的每个阶段仍然返回陈旧的值。

我不知道它是否相关,但更多细节:

  • 我启用了 CORS(“*”)
  • 我启用了 Cognito 授权方
  • 我通过 Authorization 标头传入 JWT 令牌(这一切正常)

我是否应该传递一些标头来请求未缓存的值?我去了 CloudFront,但这里没有配置。

API Gateway 缓存上的所有其他帖子似乎都是关于缓存不起作用或人们询问缓存键的特殊性。无论如何,我都没有看到任何关于总是被缓存的值。所以我觉得我错过了一些明显的东西......

任何帮助或调试技巧将不胜感激!

caching amazon-web-services aws-api-gateway

0
推荐指数
1
解决办法
948
查看次数