AWS Lambda CI/CD process



我正在努力了解在AWS上设置项目的正确方法,以便最终在lambda函数上设置CI/CD。同时也要吸取良好的做法。

我的应用程序非常简单:一个API,它根据用户的请求调用lambda函数。

我使用AWS SAM部署了应用程序。为此,我使用了一个SAM模板,该模板使用lambda函数代码的本地路径,并创建了必要的AWS资源(API网关和lambda(。有必要为lambda函数使用本地路径,因为SAM的工作方式不允许使用现有的S3存储桶来触发S3事件(请参阅此处(,并且我部署了一个lambda函数,该函数正在监视S3存储桶,以查看触发lambda更新的任何更新代码。

现在我要做的是在Github上推送我的Lambda代码。还有一种方法,Github在SAM部署期间将lambda函数的代码从Github推送到创建的S3 bucket和正确的前缀。现在我想要的是一种在Github推送时自动实现的方式。

实现这一目标的首选方式是什么?我在AWS文档中找不到明确的信息。此外,如果你在我的过程中看到一个明显的缺陷,请毫不犹豫地指出。

您想要做的是一个标准的CI/CD管道。

您的管道步骤将(或多或少(为:Pull code from GitHub -> Build/Package -> Deploy

你希望这个管道在推送到GitHub时被触发,这可以通过设置一个Webhook来完成,然后Webhook会触发管道。

最后两个步骤由SAM支持,我认为您以前已经实施过,因此将从管道中触发相同的步骤。

大多数CI/CD工具都支持这些功能,如果你想在AWS中保留所有内容,你可以使用CodePipeline,它也支持GitHub集成。尽管如此,Jenkins非常好,也适合您的用例。

有很多方法可以做到这一点。因此,这最终取决于你决定如何做到,以及你能使用什么工具。如果你想使用原生AWS工具,那么Codepipeline可能会很有用。你可以用CDKhttps://aws.amazon.com/blogs/developer/cdk-pipelines-continuous-delivery-for-aws-cdk-applications/

如果你不熟悉CDK,更喜欢云形成,那么这可以让你开始。https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-github-gitclone.html

最新更新