使用 AWS CodeBuild/Deploy/Pipeline 为 AWS CDK 应用设置 CI/CD

Setting up CI/CD for an AWS CDK app using AWS CodeBuild/Deploy/Pipeline

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

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

CodePipeline 是一种工作流服务,它本身不能执行任何命令。您需要的是像 CodeBuild and/or Jenkins 这样的 Build/Test 服务作为 CodePipeline 的一部分。在这里您将 运行 命令如 'cdk deploy'、'dotnet test' 和 'dotnet publish'。

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

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

希望对您有所帮助。

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

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

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

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

  1. 来源
  2. CodeBuild
  3. 代码部署

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

要使用 codeBuild,您必须提供构建规范参考。 按照 link 获取更多信息,例如如何在代码构建中执行此操作。 https://docs.aws.amazon.com/codebuild/latest/userguide/build-spec-ref.html