我使用CloudFormation创建了两个堆栈。第一个堆栈创建一个包含其所需资源的Cluster:
第二个堆栈用于创建CodePipeline堆栈,以便配置连续的传递管道。
流程应如下:
一切都很好,但我遇到了问题。我正在更新代码,应用程序似乎运行旧代码,我的意思是,管道运行绿色,但每当我访问负载均衡器URL时代码都不会更新。我想这是因为CloudFormation脚本没有改变,但我的代码确实改变了!
有什么办法可以强制CloudFormation堆栈更新吗?或者我应该在部署阶段部署到ECS群集而不是CloudFormation?
据我所知,您缺少部署应用程序阶段。您似乎只是更新基础架构而不是在部署阶段部署应用程序代码?
我如何习惯于设置它:
在您的cloudformation模板中为ECS部署应用程序阶段将如下所示:
...
Stages:
- Name: deploy-app
Actions:
- Name: Deploy
ActionTypeId:
Category: Deploy
Owner: AWS
Provider: ECS
Version: 1
InputArtifacts:
- Name: build-output-artifact
Configuration:
ClusterName: 'my-cluster'
ServiceName: 'my-service'
FileName: 'imagedefinitions.json' (optional)
在构建阶段,将图像推送到ECR后,将ECR URL写入ECS imagedefinitions.json。 imagedefinitions.json必须是构建阶段的输出artefact和deploy-app阶段的输入artefact。
更多信息: