【问题标题】:AWS Lambda CI/CD processAWS Lambda CI/CD 流程
【发布时间】:2021-08-14 13:18:32
【问题描述】:

我正在尝试了解在 AWS 上设置我的项目的正确方法,以便我最终有可能在 lambda 函数上安装 CI/CD。并且还可以根深蒂固的良好做法。

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

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

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

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

【问题讨论】:

  • 您是否已经拥有 CI/CD 工具?
  • Jenkins 是一种可能性。但 AWS 内部的任何东西也是一种可能性。我只是想保留 Github 作为我的代码版本控制工具。

标签: amazon-web-services github amazon-s3 aws-lambda aws-sam


【解决方案1】:

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

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

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

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

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

【讨论】:

    【解决方案2】:

    有很多方法可以做到这一点。所以最终取决于你决定如何去做以及你喜欢什么工具。如果您想使用原生 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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-30
      • 1970-01-01
      • 2021-11-14
      • 2021-12-20
      相关资源
      最近更新 更多