我正在设置一个管道来自动化云形式堆栈模板部署。
管道本身是在aws eu-west-1 区域中创建的,但是cloudformation堆栈模板将部署在任何其他区域。
实际上我知道并且可以在不同的帐户中执行管道操作,但是我没有看到在哪里指定我想要部署模板的区域,就像我们使用aws cli:aws --region cloudformation deploy....
一样。
无论如何要在一个地区触发管道并在另一个地区执行deploy action
吗?
动作配置属性不提供这种可能性......
答案 0 :(得分:0)
一种解决方法是在 codebuild 容器中运行来自cli的aws cli deploy命令并指定好区域,但我想知道是否有更优雅的方法来执行此操作
答案 1 :(得分:0)
如果您希望一个接一个地部署到多个区域,则可以在要部署到的每个区域中创建代码管道管道,并设置S3跨区域复制,以便输出第一个管道成为下一个区域中管道的输入。
这是一篇博文,进一步解释了这一点:https://aws.amazon.com/blogs/devops/building-a-cross-regioncross-account-code-deployment-solution-on-aws/
答案 2 :(得分:0)
自2018年11月下旬以来,CodePipeline支持cross regional deploys。但是仍然有很多不足之处,因为您需要在每个区域中创建工件存储桶并在触发Deploy动作之前将部署工件(例如,您提到的代码构建容器中)复制到它们之间。因此它并没有自动化,但是如果您进行设置,它会很好地工作。
答案 3 :(得分:0)
CodePipeline现在支持跨区域部署,并且要触发不同区域中的管道,我们可以在操作阶段为CloudFormation指定“ Region”:“ us-west-2”属性,这将触发在该特定区域中的部署。
此设置要遵循的步骤:
注意:我已经附上了示例CloudFormation模板,它将帮助您进行跨区域CloudFormation部署。
DELETE c1 FROM clients c1 INNER JOIN clients c2 WHERE c1.id < c2.id AND c1.title = c2.title;