我正在尝试实现一种基于请求上的 HTTP 标头将请求路由到特定源的解决方案。
我们使用 CloudFront 进行缓存,并附加了 2 个 ALB 作为源。现在,当 HTTP 标头具有旧值时,它应该命中 ALB1,而当请求标头设置了新值时,它应该命中 ALB2。
还在决定计划。
CloudFront 有两种类型的边缘计算:CloudFront Functions 和 Lambda@Edge。 CloudFront 函数仅支持面向查看者(请求/响应)事件,而 Lambda@Edge 同时支持面向查看者(请求/响应)和面向源(请求/响应)。
因为您想要动态更改 CloudFront 将请求路由到的源(主机),所以您需要使用 origin-request 事件。这意味着您需要 Lambda@Edge。
这样做的过程很简单:
此处示例 — https://docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/lambda-examples.html#lambda-examples-content-based-routing-examples