首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在AWS中设置两个CloudFront的金丝雀版本?

如何在AWS中设置两个CloudFront的金丝雀版本?
EN

Stack Overflow用户
提问于 2018-09-18 01:29:30
回答 2查看 0关注 0票数 0

我们的网站只是一个网络应用程序。所以我们使用CloudFront和S3来托管它。现在我想使用canary版本将5%用户重定向到新版本进行一些测试。但我发现似乎AWS无法接近这一点 我无法弄清楚如何处理这个问题。

在此处输入图像描述
在此处输入图像描述

例如,在屏幕截图中,我需要绑定到CloudFront A的SSL证书。但是一个证书只能绑定到一个CloudFront,这是AWS的限制。这意味着证书无法绑定到CloudFront B.

我不知道如何解决这个问题。我不确定我是否误解了AWS服务或我的解决方案是完全错误的。

任何评论将不胜感激。

ps我想到的一个解决方案是编写代理或APIGateway / lambda函数来接受请求并按百分比重定向。

EN

回答 2

Stack Overflow用户

发布于 2018-09-18 09:34:32

尽管CloudFront本身不支持此功能,但您可以使用在CloudFront Edge Locations上运行的AWS Lambda @ Edge实施Canary Release 。您可能需要对路由逻辑进行编码以将特定百分比转发到特定存储桶。

票数 0
EN

Stack Overflow用户

发布于 2018-09-18 11:16:15

术语金丝雀版本不适合前端开发,它与您的支持服务有关,应该只在API REST服务级别完成。因为在金丝雀配置中,并不是用户总是点击金丝雀释放或正常释放,而是每个请求都有可能触及任一个版本,一个请求可能会击中金丝雀,然后下一个请求可能会触及旧版本。

关于前端,您可能希望让用户启用测试版功能,或者拥有一个完全不同的托管站点,在www.beta.yoursite.com,该站点上,DNS通过快照发布解析到您的存储桶,同时www.yoursite.com.解析为正常站点。然后,您可以随机选择哪些测试版用户,并收到一封电子邮件,建议他们在测试版位置试用新网站。在您的应用程序中,您可以将这些用户标记为具有测试版凭据,以强制执行只有β用户才能访问测试版网站(如果您愿意)。

请注意,即使你可以做你提出的建议(我认为有一种方式使用CloudFront),这将是一个糟糕的用户体验,因为用户在访问您的网站时可能会使用2个不同的设备,然后有2种不同的体验但不知道到底是怎么回事。

编辑:评论答案 - 就像我说的,我真的不认为你想这样做,但无论如何你要做的是将你的域解决到apigateway / proxy / loadbalancer而不是一个桶,然后根据路由器路由流量经过身份验证的用户访问测试版网站或旧网站。这样他们就不会看到不同的域名。AFAIK无法基于Route53中的登录用户进行DNS解析,也无法通过DNS进行DNS解析。我可能是错的,如果有的话,有人纠正我。可能API网关最简单,并使用lambda将流量路由到正确的站点。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100008859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档