如果只更改一个功能,如何避免在无服务器框架的服务器中部署所有五个功能
How to avoid deployment of all five functions in a server of serverless framework if only one function is changed
我有 serverless framework service with (say)five aws lambda functions using python. By using github I have created a CodePipeline CI/CD。
当我推送代码更改时,它会部署所有功能,即使只有功能发生变化。
我想避免部署所有函数,CI/CD 应该确定更改的函数并部署它。其余功能不应再次部署。
此外,是否可以使用 AWS SAM 来处理此类问题,因为在这个阶段我可以选择通过退出 serverless framework
来切换到 SAM
不幸的是,"native" 没有办法做到这一点。您需要编写一个 bash 循环遍历更改的文件并为每个文件调用 sls deploy -s production -f
。
我也遇到过这个问题,最终促使我创建了一个替代方案。
Rocketsam 利用 sam local 允许仅部署更改的功能而不是整个微服务。
它还支持其他很酷的功能,例如:
- 为每个函数获取实时日志
- 在函数之间共享代码
- 每个函数的模板而不是一个大模板文件
希望它能解决您的问题:)
我有 serverless framework service with (say)five aws lambda functions using python. By using github I have created a CodePipeline CI/CD。
当我推送代码更改时,它会部署所有功能,即使只有功能发生变化。
我想避免部署所有函数,CI/CD 应该确定更改的函数并部署它。其余功能不应再次部署。
此外,是否可以使用 AWS SAM 来处理此类问题,因为在这个阶段我可以选择通过退出 serverless framework
来切换到 SAM不幸的是,"native" 没有办法做到这一点。您需要编写一个 bash 循环遍历更改的文件并为每个文件调用 sls deploy -s production -f
。
我也遇到过这个问题,最终促使我创建了一个替代方案。
Rocketsam 利用 sam local 允许仅部署更改的功能而不是整个微服务。 它还支持其他很酷的功能,例如:
- 为每个函数获取实时日志
- 在函数之间共享代码
- 每个函数的模板而不是一个大模板文件
希望它能解决您的问题:)