【发布时间】:2017-07-26 15:23:21
【问题描述】:
我正在使用 Amazon API Gateway 在调用 API 终端节点时执行 Lambda 函数。在我的 Lambda 函数中,我正在更新一个 DynamoDB 表。
每当我使用 Chrome 开发者工具在禁用缓存的情况下调用 API 时,DynamoDB 表都会更新。
启用缓存后,来自我的 API 的第一个请求会更新表,随后的每个请求都会快得多,但不会更新表。
我假设 CloudFront 正在缓存响应,以便不必每次都调用 Lambda 函数。
有没有办法强制每个请求都执行 Lambda 函数?
【问题讨论】:
-
缓存的全部意义在于不调用 Lambda 函数。听起来您实际上并不希望启用缓存。
-
@MarkB 我不想缓存,但是当您添加自定义域名时会自动添加 CloudFront。
-
啊,我看错了你的问题。首先确保您在 API 设置中禁用了缓存。如果您已禁用该功能,则 CloudFront 不会缓存您的 API 响应。听起来您的实际问题是在浏览器中缓存。您的 API 响应中的
cache-control标头值是什么? -
默认情况下它是缓存控制:私有,当我使用 Chrome 开发者工具时它是缓存控制:无缓存。
-
是的,如果您想阻止浏览器缓存响应,我认为您需要将 API 网关映射模板配置为始终返回
cache-control: no-cache。
标签: amazon-web-services aws-lambda aws-api-gateway