我们有四个用于定义不同环境的AWS账户:dev,ske,stg,prd。我们现在仅使用CF,我想将现有资源导入堆栈。在我们推出该产品时,每个环境都将获得新的堆栈,我想知道是否存在一种更简单的方法来在每个环境中导入资源。而不是最初通过控制台导入资源而又添加堆栈(如果我们可以仅通过部署系统进行部署,那会很好。)
我想要的是我可以在堆栈定义本身中指定的内容(例如,“这里已有一个存储桶,拥有所有权”),但是我什么都没找到。当前,似乎最简单的方法是在每个环境中创建一个空堆栈,该环境将导入资源,然后按常规进行部署。
此外,如果/如果更新失败并且堆栈卡在ROLLBACK_COMPLETE中,该怎么办?删除堆栈后是否需要再次进行此操作?
答案 0 :(得分:1)
您所说的听起来完全像是经过持续集成/持续部署(CICD)管道之后。最好尝试设计cloudformation模板,然后通过Code Pipeline将它们部署到每个环境中,而不是尝试将现有资源导入到您的帐户中。这也将提供帐户之间的明确分隔,而不是将 stg 资源导入到 prd 。
serverless-cicd-for-enterprise是一个很好的例子和快速入门,应该为您提供一个良好的起点。
您不会卡在“回滚完成”上,因为这是失败的变更集执行的最后一项操作。这意味着它尝试更新,无法更新并且已恢复为上一次成功的部署。如果这是第一个部署(没有成功的部署),则需要删除堆栈,然后重试。但是,如果部署成功,则可以运行更新堆栈。