将多个lambda函数从单个github repo部署到AWS的最佳方法是什么?

问题描述 投票:1回答:3

我有一个存储库,在github上托管我的lambda函数。我希望能够在新逻辑推送到主控时部署新版本。

我做了很多研究,发现了一些不同的方法,但没有什么是明确的。想知道其他人认为最好的方法是什么,也许还有一些细节(如果可能的话)如何设置管道。

谢谢

aws-lambda aws-code-deploy aws-codepipeline aws-codebuild aws-serverless
3个回答
1
投票

我知道这不是你要求的,但我使用无服务器框架(https://serverless.com)进行部署,我喜欢它。当我推送我的回购时,我不进行部署。相反,在我部署之后,我会推送到我的仓库。我喜欢这种流程,因为部署可能因为很多事情而失败,而且推送到GitHub的可能性要小得多。我这样做,我阻止推送无法部署到我的主分支的代码。

我不知道你是否熟悉这个框架,但它非常简单。该网站描述了创建和部署此类功能的简单步骤。

1     # Step 1. Install serverless globally
2     $ npm install serverless -g
3
4     # Step 2. Create a serverless function
5     $ serverless create --template hello-world
6 
7     # Step 3. deploy to cloud provider
8     $ serverless deploy
9
10   # Your function is deployed!
11   $ http://xyz.amazonaws.com/hello-world

您还可以使用许多插件轻松地与APIGateway上的自定义域集成,修剪旧版本的lambda函数,这些函数可能会填满您的限制等等...

总的来说,我发现它是管理和部署我的lambda的最简单方法。希望能帮助到你!


1
投票

欢迎来到StackOverflow。您可以通过阅读this页面来改善您的问题。

您可以使用CircleCI with its GitHub integration(这是一个在线服务,因此您不需要维护任何内容,例如Jenkins服务器)来设置CI / CD管道。

每次提交到您的存储库时,都会触发CircleCI构建。一旦构建过程结束,您可以声明sls deploysam deploy,使用Terraform甚至创建一个脚本,将.zip文件从GitHub仓库上传到S3 Bucket,然后在脚本中调用create-function命令。有一个例子说明如何使用CircleCI和Serverless Framework here部署无服务器应用程序

其他选项包括TravisCIAWS Code Deploy甚至维护您自己的CI / CD服务器。同样的逻辑适用于所有这些工具:commit - > build - > deploy(使用您选择的工具之一)。

编辑:在@Matt的回答之后,它点击了OP从未提及无服务器框架(我,不知何故,以为他已经在使用它,所以我指出OP已经使用无服务器框架的教程)。然后,我决定使用其他一些无服务器部署选项来更新我的答案


0
投票

鉴于您使用的是AWS Lambda,您可能需要考虑CodePipeline来自动化您的发布过程。 [SAM(https://docs.aws.amazon.com/lambda/latest/dg/serverless_app.html)也可能很有趣。

© www.soinside.com 2019 - 2024. All rights reserved.