如果只更改一个功能,如何避免在无服务器框架的服务器中部署所有五个功能

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 允许仅部署更改的功能而不是整个微服务。 它还支持其他很酷的功能,例如:

  • 为每个函数获取实时日志
  • 在函数之间共享代码
  • 每个函数的模板而不是一个大模板文件

希望它能解决您的问题:)