【问题标题】:How do I test a Cloudfront Distribution with the same CNAME as an existing Distribution?如何使用与现有发行版相同的 CNAME 测试 Cloudfront 发行版?
【发布时间】: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)。

我们不希望只是“翻转开关”并在生产中进行,并且希望事先测试我们的配置。所以我们建立了另一个具有新行为的发行版,并为Foo2Baz 放置了良性示例应用程序。但是当然 - 我们不能在这个其他发行版上设置 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


【解决方案1】:

我们不希望只是“翻转开关”并在生产中进行, 并希望事先测试我们的配置。

当使用 CloudFront 等服务进行多个阶段(例如测试、登台和生产)来测试配置时,推荐的方法是首先使用 AWS CloudFormation 将基础设施配置进行编码。

当您使用版本控制(类似于源代码)在代码中保留基础架构修改时,您可以将更改应用到一个环境并进行测试,如果一切正常,您可以将相同的更改推送到其他环境。

我们有什么方法可以测试和验证 Cloudfront 规则集更改 具有现有 CNAME 的分布而不改变行为 以及适用于当前分布的规则?

这是不可能的。当您对分发进行配置更改时,将应用规则,修改其行为。因此,如上所述,这将需要为每个环境提供多个发行版来测试配置。

此外,除非您的应用程序代码在程序(例如 example.com)中使用域标头(例如 Host、Origin),否则您可以使用 AWS 分配给 CloudFront 的域名来测试应用程序(例如 xxxxxx.cloudfront.net )

【讨论】:

    【解决方案2】:

    您可以将多个 CNAME 分配给单个分配。所有 CNAME 必须用逗号分隔。您只能测试 HTTP 连接,而不能测试 HTTPS。您只能为给定的分发应用一个自定义域证书。

    一个分配最多可以有 100 个 CNAME。检查以下链接中的限制。如果您想要更多,可以通过支持请求提出请求。

    http://docs.aws.amazon.com/general/latest/gr/aws_service_limits.html#limits_cloudfront

    这将有助于在不改变你的起源或行为的任何情况下进行测试。

    希望对你有帮助。

    【讨论】:

      猜你喜欢
      • 2023-03-10
      • 2016-01-09
      • 1970-01-01
      • 2010-09-20
      • 1970-01-01
      • 2019-08-03
      • 1970-01-01
      • 2022-10-20
      • 2019-09-12
      相关资源
      最近更新 更多