AWS Lambda CI/CD 进程

AWS Lambda CI/CD process

我试图了解在 AWS 上设置我的项目的正确方法,以便我最终有可能在 lambda 函数上使用 CI/CD。还要根深蒂固。

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

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

现在我要做的是将我的 Lambda 代码推送到 Github。并有一种方法 Github 将 lambda 函数的代码从 github 推送到在 SAM 部署期间创建的 S3 存储桶和正确的前缀。现在我想要的是一种在 Github 推送时自动执行的方法。

实现该目标的首选方法是什么?我在 AWS 文档中找不到明确的信息。另外,如果您在我的过程中看到明显的缺陷,请毫不犹豫地指出来。

有很多方法可以做到。所以最终取决于你决定如何去做以及你喜欢什么样的工具。如果您想使用原生 AWS 工具,那么 Codepipeline 可能会有用。 您可以为此使用 CDK https://aws.amazon.com/blogs/developer/cdk-pipelines-continuous-delivery-for-aws-cdk-applications/

如果您不熟悉 CDK 并且更喜欢 cloudformation,那么这可以帮助您入门。 https://docs.aws.amazon.com/codepipeline/latest/userguide/tutorials-github-gitclone.html

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

您的流水线的步骤将是(或多或少):Pull code from GitHub -> Build/Package -> Deploy

您希望在推送到 GitHub 时触发此管道,这可以通过设置 Webhook 然后触发管道来完成。

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

大多数 CI/CD 工具都支持这些功能,如果您想将所有内容都保留在 AWS 中,您可以使用 CodePipeline which also supports GitHub integration。不过,Jenkins 非常适合您的用例。