首页 文章

将CloudFront主机标头转发到API网关

提问于
浏览
5

我们有一个指向CloudFront分布的通配符(*)子域 . 起源是API网关 .

我们需要知道API网关中的原始 Host 标头,以便我们可以路由请求 .

简单地将CloudFront中的 Host 标头列入白名单会在通过HTTP访问CloudFront分配时返回错误 - 可能是因为API Gateway需要 Host 标头才能知道要调用的API .

如果是这种情况,是否可以通过_1140572_从CloudFront转发 Host 标头到API网关?或者......是否有另一种方法可以在API网关中使用通配符子域?

1 回答

  • 2

    这不是原始问题的答案,但它可能是实现目标的另一种方式 .

    首先,在所有环境(包括产品)之间共享CF分配会带来风险 - 当您需要测试CF配置的更改时,您必须使用未经测试的更改修改产品CF dist,这可能会产生重大影响 .

    其次,虽然如果你可以在CI / CD管道的所有阶段测试整个环境,这很棒,但并不总是可能的(并且CF特别糟糕) - 所以它是关于在短反馈周期和测试的彻底性之间找到 balancer .

    解决方案通常是为您的管道引入额外的阶段,其中早期阶段提供对最常见问题的快速反馈,而后期阶段对较不频繁的问题提供较慢的反馈 .

    在你的情况下,我建议:

    • 分支部署不部署CF - 测试直接针对API网关

    • 主/默认部署DO部署CF - 到'staging'环境 - 测试目标是分段CF分发

    • 成功测试到'staging'环境的版本将升级为 生产环境 版

    通过引入暂存环境,您可以获得有关分支构建的快速反馈,但您仍然有机会在进入prod之前测试缓存后面的内容 .

    如果要对CF配置进行更改,则可以使部署脚本动态决定在分支部署中包含CF(在分支名称中可能存在“cloudfront”一词 - 尽管可能有点'神奇的'为某些人!)并且您可以在合并到master之前测试分支上的这些更改以便在分段中进行测试 .

相关问题