我们使用cloudfront前端的网络应用程序(myapp.com与s3,lambda,雅典娜,.在发布新版本之前,我们将创建一个包含新代码和内容的完整新发行版(next.myapp.com),并进行测试,然后将其作为myapp.com的实时版本。但这似乎不可能。
多个Cloudfront发行版不能具有相同的CNAME,因此我们不能更改myapp.com的DNS条目以指向新服务。更改分发版意味着随着新配置在世界各地的普及,将出现延迟。
是否有其他方法可以使用亚马逊的基础设施来实现这一点?还是我做错了?希望能够尽快迁移活动服务,但如果发行版破坏了某些功能,则仍然可以使用现有版本进行手动故障回退。
发布于 2019-04-29 17:36:16
如果您遵循这些步骤,这在很短的时间内是可能的。
使用正确的证书创建新发行版,但没有备用域名,并允许其稳定。
更改站点的DNS以指向新发行版。这并没有您所承担的负面影响,因为该站点继续在现有发行版上工作。CloudFront没有区分到达端点--它只查看SNI和主机头,将它们与备用域名相匹配--因此旧的发行版将继续处理通信量。
编辑现有发行版以删除备用域名。您不需要等待它返回到“部署”状态。
编辑新发行版以添加备用域名。你可能不得不尝试不止一次,但它最终将被接受。
发布于 2019-04-29 07:47:19
诀窍是使用*.myapp.com
作为CNAME的新发行版,切换您的DNS记录指向新的发行版,当开关是有效的,您清理一切。
如果不与AWS联系,就不可能对二级域(myapp.com
)执行此操作。解决方案是在活动版本中使用www.myapp.com
,并且只对HTTPS从myapp.com
重定向到www.myapp.com
(或者用S3重定向,但只有到那时才有另一个版本)。该发行版的CNAME永远不需要更新。
https://stackoverflow.com/questions/55897812
复制相似问题