首页 文章

API网关缓存不调用Lambda函数

提问于
浏览
0

我正在使用Amazon API Gateway在调用API endpoints 时执行Lambda函数 . 在我的Lambda函数中,我正在更新DynamoDB表 .

每当我使用Chrome开发者工具调用禁用缓存的API时,都会更新DynamoDB表 .

当我启用缓存时,来自我的API的第一个请求会更新表,每个后续请求都要快得多,但不会更新表 .

我假设CloudFront正在缓存响应,以便不必每次都调用Lambda函数 .

有没有办法强制Lambda函数与每个请求一起执行?

1 回答

  • 1

    几种可能的解决方案:

    • 只有在需要缓存时才应使用CloudFront . 在这种情况下,你不需要它;所以直接从浏览器调用API endpoints 而不是调用CF endpoints . 这也将节省您的 Cloud 端成本 .

    • 每个请求都添加一个时间戳 .

    • 如果必须使用CF;您可以非常轻松地配置它应该始终转到API endpoints (提供动态内容)的哪些请求应该缓存哪一个 .

    • 可能你是在叫CF作为GET请求;只是让它永远缓存的POST . 理想情况下,当您更新表时,它应该是POST请求 . 这应该是简单的解决方案,具有最小和正确的变化 .

相关问题