【问题标题】:Setting up CI/CD for an AWS CDK app using AWS CodeBuild/Deploy/Pipeline使用 AWS CodeBuild/Deploy/Pipeline 为 AWS CDK 应用程序设置 CI/CD
【发布时间】:2019-10-10 14:38:18
【问题描述】:

我正在尝试为使用 AWS Lambda 和 AWS CDK 作为基础设施的 dotnet 应用程序设置 CI/CD 管道。源代码在 github 上,我们有一个运行测试和发布工件的 Jenkins 管道。我想使用工件并部署(或更好地使用 Code Deploy)

我可以使用 CodePipeline 运行cdk deploy 吗? 如何使用 CodeDeploy 进行 dotnet 测试和 dotnet 发布?然后将工件传递给 CodePipeline

【问题讨论】:

    标签: continuous-integration aws-code-deploy aws-codepipeline continuous-delivery aws-cdk


    【解决方案1】:

    CodePipeline 是一个工作流服务,它本身不能执行任何命令。您需要一个构建/测试服务,例如 CodeBuild 和/或 Jenkins,作为 CodePipeline 的一部分。您将在此处运行“cdk deploy”、“dotnet test”和“dotnet publish”等命令。

    一旦在构建环境中准备好部署工件(使用上述命令),下一个 CodePipeline 阶段就可以使用它们进行部署 - 这就是将使用像 CodeDeploy 这样的服务的地方。

    CodePipeline 只是编排构建块服务之间的工作流,例如 CodeCommit(源)、CodeBuild(构建/测试)和 CodeDeploy(部署)。还有更多integrations 可用。

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      此 AWS CDK 主页上有来自 AWS 的示例。 https://docs.aws.amazon.com/cdk/latest/guide/codepipeline_example.html

      使用代码提交的工作实现如下,它有屏幕截图和github链接。

      https://nikhilbhojcloud.blogspot.com/2019/08/code-pipeline-using-aws-cdk-for-lambda.html

      除此之外,AWS CDK 团队还在为 CDK 应用程序构建 CI/CD。 https://github.com/aws/aws-cdk/tree/master/packages/%40aws-cdk/app-delivery

      【讨论】:

        【解决方案3】:

        您应该使用 CodeBuild 而不是 CodeDeploy 来进行 dotnet 测试。 CodePipeline 分为三个阶段

        1. 来源
        2. 代码构建
        3. 代码部署

        对于您的用例,github 是源。 CodeBuild 可用于构建/测试您的应用程序。 CodeDeploy 将构建工件部署到您的环境中。

        为了使用 codeBuild,您必须提供构建规范参考。 点击链接以获取更多信息,例如如何在 codebuild 中执行此操作。 https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2020-05-29
          • 1970-01-01
          • 2019-12-04
          • 1970-01-01
          • 2021-08-14
          • 2021-09-06
          • 1970-01-01
          • 2021-08-05
          相关资源
          最近更新 更多