一家公司使用 CloudFront 来部署全球 Web 应用程序。随着时间的推移,性能有所下降,CloudFront 缓存命中率也持续走低。指标显示,某些 URL 包含查询字符串,其参数顺序不一致,有时还使用大小写混合的字母,从而降低了缓存命中率。解决方案架构师应采取哪些措施尽快提高缓存命中率?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 部署一个 Lambda@Edge 函数,该函数按名称对查询字符串参数进行排序并将其转换为小写。将该函数附加到 CloudFront viewer request 事件。.
为什么这是答案
CloudFront 缓存命中率低的原因是查询字符串参数顺序不一致和大小写混合。这些差异导致 CloudFront 将相同的资源视为不同的缓存对象。部署一个 Lambda@Edge 函数,在 viewer request 事件中对查询字符串参数进行排序并转换为小写,可以在请求到达 CloudFront 缓存之前对其进行标准化。这样,即使原始请求的查询字符串不同,CloudFront 也能识别出它们是相同的资源,从而显著提高缓存命中率。 禁用基于查询字符串参数的缓存会阻止 CloudFront 缓存任何带有查询字符串的请求,这通常会导致缓存命中率进一步下降,而不是提高。在负载均衡器之后部署反向代理会增加架构复杂性和延迟,并且无法在 CloudFront 边缘位置对请求进行规范化,因此对提高 CloudFront 缓存命中率效果不佳。CloudFront 本身不提供内置的“不区分大小写”查询字符串处理选项,需要自定义逻辑来实现。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡