【发布时间】:2017-09-22 10:17:04
【问题描述】:
我们的团队使用 Cloudfront 作为缓存 + 动态反向代理,以便:
example.com/foo
指向我们的 Foo elasticbeanstalk 环境和
example.com/bar
指向我们的 Bar elasticbeanstalk 环境。
现在,我们一直在对我们的一些 example.com 服务进行相当大的重新架构,现在我们希望 example.com/foo 进入我们的 Foo2 环境,以及其他一些东西,例如 example.com/baz 给 Baz,依此类推(同时保留一些现有规则,例如 /bar 到 Bar)。
我们不希望只是“翻转开关”并在生产中进行,并且希望事先测试我们的配置。所以我们建立了另一个具有新行为的发行版,并为Foo2 和Baz 放置了良性示例应用程序。但是当然 - 我们不能在这个其他发行版上设置 example.com CNAME,因为我们的 CURRENT 发行版已经使用了它。
当我们尝试通过编辑 /etc/hosts 文件以将 example.com 指向我们的 new 发行版中的 A 记录之一的 IP 地址之一来“验证”时,Cloudfront 似乎只是在幕后看到我们正在尝试请求主机 example.com 并将请求路由到我们 当前 分布中的行为指定的环境。
我们有什么方法可以测试和验证 Cloudfront 规则集对具有现有 CNAME 的分发的更改,而无需更改应用于当前分发的行为和规则?
【问题讨论】:
-
您当然可以使用第二个发行版,但是您不能在浏览器的
Host请求标头中使用另一个发行版的主机名来访问它。您可以使用分配的 CloudFront 主机名进行测试,例如dxxxexample.cloudfront.net或通过关联新主机名,例如preview.example.com带有新的(测试)发行版。你没有这样做的事实让我问:为什么不呢?您的设置是什么阻止了这种方法可用?您是否有硬编码的绝对 URL?您的来源是否需要在转发的Host标头中看到example.com?还是……?
标签: amazon-web-services testing networking amazon-elastic-beanstalk amazon-cloudfront