AWS Lambda 开发工作流

Ale*_*llo 5 version-control amazon-web-services node.js aws-lambda aws-api-gateway

我已经使用 AWS 一段时间了,但我想知道如何使用 Lambda 进行开发。我非常喜欢拥有无服务器功能并让 Amazon 处理维护工作,并且已经使用了一段时间。我的问题:是否有推荐的版本控制和开发工作流程?

我知道可以在 Lambda 中发布新版本。并且您可以指向调用它的服务中的特定版本,例如 API Gateway。我看到 API Gateway 也有一些很好的功能来划分谁调用哪个版本。即有一个测试 API 并且缓慢滚动更新,比如 10% 的生产 API 调用和缓慢扩展。

然而,对于实际的版本控制系统来说,这感觉有点笨拙。也许函数是在本地编码并使用 AWS CLI 上传,然后一切都通过第三方版本控制系统(Github、Bitbucket 等)进行管理?我可以通过这种方式部署到该函数的新版本或现有版本吗?这样我就可以保持测试和生产功能的分离。

通过 Lambda 中的编辑器进行开发也感觉不那么好。更不用说使用自定义包需要上传了。似乎本地开发是更好的解决方案。尝试了解其他工作流程,以便改进我的工作流程。

根据您的经验,您是如何处理这个问题的?

Dei*_*eiv 1

您可以使用 aws CodeCommit 对 lambda 进行版本控制(比使用外部 git 存储库系统简单得多,尽管您可以这样做)。以下是为提交/构建/部署阶段设置 CodePipeline 的教程:https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-simple-codecommit.html

此示例部署了一个 EC2 实例,因此对于 lambda 的部署部分,请参阅此处

如果您设置管道,则可以有一个初始提交阶段,然后是运行单元测试并打包代码的构建阶段,然后是部署阶段(如果需要,可能还有更多阶段)。这是一种非常有组织的部署 lambda 更改的方式。