我们有一个通配符(*)子域,它指向CloudFront发行版。来源是API网关。
我们需要知道API网关内的原始Host
header ,以便我们路由请求。
通过HTTP访问CloudFront分发时,仅将CloudFront中的Host
header 列入白名单会返回错误-大概是因为API网关需要Host
header 才能知道要调用哪个API。
如果是这种情况,是否可以通过Host
将X-Forwarded-Host
header 从CloudFront转发到API网关?或者...是否有另一种方法可以将通配符子域与API网关一起使用?
最佳答案
这并不是您最初提出的问题的答案,但是它可能是实现目标的另一种方法。
首先,在所有环境(包括产品)之间共享CF分布会带来风险-当您需要测试对CF配置的更改时,您必然会使用未经测试的更改来修改产品CF dist,这可能会带来严重的后果。
其次,虽然可以在CI/CD管道中的所有阶段测试整个环境是一件很了不起的事情,但这并不总是可能的(而且CF特别不利)-因此,它的目的是在较短的反馈周期和测试彻底性之间找到平衡。
解决方案通常是在您的管道中引入额外的阶段,其中早期阶段针对最常见的问题提供快速反馈,而后期阶段针对较不频繁的问题提供较慢的反馈。
对于您的情况,我建议:
通过引入暂存环境,您可以快速获得有关分支构建的反馈,但是您仍然有机会在进入产品之前对缓存背后的内容进行测试。
如果您要更改CF配置,则可以使您的部署脚本动态地决定将CF包含在分支触发器中,而无需触发某些触发器(分支名称中可能存在“cloudfront”一词-尽管可能有点“神奇!”,您可以在合并到母版进行暂存测试之前,先在分支上测试这些更改。
关于amazon-web-services - 将CloudFront主机 header 转发到API网关,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/39222208/