CloudFront 是否删除 Lambda@Edge 添加的 Server-Timing 标头?

问题描述 投票:0回答:2

我有一个 Viewer Response Lambda@Edge 脚本,它通过读取标头中的其他信息来手动添加服务器计时标头。这样,我的 JavaScript 代码就可以读取该值并将其用于其他客户端功能,例如报告。

export async function viewerResponse(event) {
  const { request, response } = event.Records[0].cf;
  response.headers['Server-Timing'] = [{ key: 'Server-Timing', value: 'something' }];
  return response;
}

到目前为止一切顺利。我可以看到标题添加在边缘。

但是,当 CloudFront 注册 HIT(如标头

X-Cache: hit by cloudfront
所示)时,Server-Timing 标头神秘地消失了。就好像 CloudFront 决定覆盖此标头。

有人见过这样的事情吗?可以告诉 CloudFront 停止干扰吗?

我尝试在 CloudFront 的安全标头策略中启用服务器计时。除了我想要的任何缓存未命中的自定义内容之外,这还添加了 CloudFront 自己的服务器计时变量。但一旦发生缓存命中,自定义添加内容就会被删除。

node.js amazon-cloudfront aws-lambda-edge server-timing
2个回答
0
投票

您是否尝试过在 CloudFront 中的响应 CachePolicy 中启用“Server-Timing”标头?

enter image description here


0
投票

我不熟悉 CloudFront 或您所谈论的其他一些细节。 但是,当从缓存提供某些内容时,您的脚本是否没有创建/添加到响应标头,这不仅仅是因为缓存机制本身实际上正在为缓存资源创建响应标头吗? 或者也许我只是不了解所有“边缘”业务; )

© www.soinside.com 2019 - 2024. All rights reserved.