我听说cloudfront会缓存原始响应以减少延迟,那么这是否意味着每次有请求时都不会调用lambda函数,因为响应已经被缓存了?我不认为是这种情况,因为如果 lambda 函数的逻辑不是在每个请求上执行,那么它有什么用呢?那么在这种情况下到底缓存了什么?
我听说cloudfront缓存原始响应以减少延迟,那么这是否意味着每次有请求时都不会调用lambda函数,因为响应已经被缓存了?
是的,这就是 CloudFront 等 CDN 的全部目的。想象一下您的网站有很多不经常更改的页面。如果数千人访问您网站上的同一页面,CloudFront 可以调用您的服务器一次以获取页面内容,然后将其提供给这数千人,而无需再次返回您的 Web 服务器,从而减少服务器上的负载.
我不认为是这种情况,因为如果 lambda 函数的逻辑不是在每个请求上执行,那么它有什么用呢?那么在这种情况下到底缓存了什么?
显然,如果您希望为每个请求调用 Lambda 函数,则您不会启用此功能。您可以自行配置 CloudFront 等缓存。如果您不希望缓存后端响应,请相应地配置它,或者根本不使用它。