无服务器Lambda单线程项目只部署更改的文件自定义CI文件



我们开发的项目所有RestApi服务都是Lambda函数,我们使用无服务器框架进行AWS Lambda部署。项目是mono-repo.

文件夹结构是这样的

./app (this is shared folder and a layer on AWS )
- /Models
- /Helper
- ...
./services
- /ServiceGroup
- /service1
- service.handler
- config.yml
- /service2
- service.handler
- config.yml
- /AnotherServiceGroup
- /service3
- service.handler
- config.yml
- /service4
- service.handler
- config.yml
- serverless.yml (this yml configuration file is including all services configuration files)

使用自定义的gitlab服务器。在这个项目CI文件夹中为lambda deploy

运行以下代码
serverless deploy

该命令部署所有服务,但我们希望只部署已更改的服务。如何为此定制CI ?

如果您的所有服务共享相同的serverless.yml文件,则它们位于相同的云形成堆栈中,因此您所要求的将无法工作。

您可以使用serverless deploy function只更新一个函数,但这会跳过云的形成,因此不会创建新的资源,您的堆栈将漂移。您应该在开发期间使用它,但不要用于生产部署。

我强烈建议把你的堆栈分开。您仍然可以使用mono-repo,然后您可以根据给定提交更改的文件有条件地部署服务。

最新更新