我有一个无服务器框架服务,上面有五个使用 python 的 aws lambda 函数。通过使用github,我为CI/CD创建了一个CodePipeline。
当我推送代码更改时,它会部署所有功能,即使只更改了函数。
我想避免部署所有功能,CI/CD 应该确定更改的功能并部署它。其余功能不应再次部署。
此外,是否可以使用 AWS SAM 处理此类问题,因为在此阶段,我可以选择通过退出无服务器框架来切换到 SAM
不幸的是,没有"本地"方法可以做到这一点。您需要编写一个 bash 来循环访问更改的文件并为每个文件调用sls deploy -s production -f
。
我也遇到了这个问题,最终它驱使我创建了一个替代方案。
Rocketsam 利用 sam local 允许仅部署更改的功能而不是整个微服务。 它还支持其他很酷的功能,例如:
- 获取每个函数的实时日志
- 在函数之间共享代码
- 每个函数的模板,而不是一个大的模板文件
希望它能:)解决您的问题