Amazon web services AWS API网关缓存能否根据响应内容使特定条目无效?

Amazon web services AWS API网关缓存能否根据响应内容使特定条目无效?,amazon-web-services,caching,lambda,http-status-codes,aws-api-gateway,Amazon Web Services,Caching,Lambda,Http Status Codes,Aws Api Gateway,我将端点作为lambda函数使用AWSAPI网关。我启用了API网关提供的缓存功能,以减少响应时间和转发到lambda函数的调用数 lambda函数查询另一个数据存储以返回数据。如果未找到数据,则进行异步调用以更新数据存储,并将“未找到数据”返回给调用者。现在API网关甚至正在缓存这个结果,这是我们不希望发生的。这导致缓存在其生存期(1小时TTL)内始终返回“未找到数据”,即使数据存储中的数据是异步更新的 我知道请求头(缓存控制:max age=0),它可以使缓存失效并直接从Lambda获得响应

我将端点作为lambda函数使用AWSAPI网关。我启用了API网关提供的缓存功能,以减少响应时间和转发到lambda函数的调用数

lambda函数查询另一个数据存储以返回数据。如果未找到数据,则进行异步调用以更新数据存储,并将“未找到数据”返回给调用者。现在API网关甚至正在缓存这个结果,这是我们不希望发生的。这导致缓存在其生存期(1小时TTL)内始终返回“未找到数据”,即使数据存储中的数据是异步更新的

我知道请求头(缓存控制:max age=0),它可以使缓存失效并直接从Lambda获得响应,如本页所述

但这并没有用,因为调用者不知道数据存储中是否存在数据,因此不能有选择地发送这样的请求头


因此,我的两个问题是:

  • API网关是否也缓存其他HTTP响应,如404(除了200之外)
  • 是否可以告诉API网关不要缓存特定的响应
  • 正如您所观察到的,API网关缓存端点的结果,而不考虑状态代码

  • 不,现在不行。我可以反驳这个想法,看看这是否是我们将来可以支持的


  • 即使API网关有条件地不缓存404,调用方仍然需要再次调用端点,那么为什么不同步返回结果呢?据我所知,大多数缓存的API都是以这种模式运行的,并允许您的API使用API网关目前提供的功能。

    “即使API网关有条件地不缓存404,调用方仍需要再次调用端点,那么为什么不同步返回结果呢?”异步更新过程大约需要2分钟的时间,因为它调用了第三方API。因此,我们无法同步返回结果。因此,我们的想法是,第一次它将返回404或“未找到数据”,但下次应该返回良好的数据。