繁体   English   中英

使用 AWS 管道和 CDK 将应用程序从 github 部署到 Fargate

[英]Deploy the app from github to fargate using AWS pipelines and CDK

我正在尝试使用 AWS CDK 设置从 github 到 AWS Fargate 应用程序的 CI/CD。 我试过使用“CDK 管道”: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.pipelines-readme.html

我也尝试了另一个(代码管道?): https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_codepipeline-readme.html

不知何故,这两个都没有我需要的功能。

我添加了一个带有构建操作的步骤: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_codepipeline_actions.CodeBuildAction.html

它运行良好并生成了一个工件。 这是代码:

const buildArtifact = new Artifact();

pipeline.addStage({
  stageName: "Build",
  actions: [
    new CodeBuildAction({
      project: new PipelineProject(this, "Build", {
        projectName: "Build",
        buildSpec: BuildSpec.fromSourceFilename("./docker-compose.yml"),
      }),
      input: sources,
      outputs: [buildArtifact],
    }),
  ],
});

但随后我继续将构建结果部署到 fargate,例如: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.FargateTaskDefinition.html

const fargateTaskDefinition = new ecs.FargateTaskDefinition(this, 'TaskDef', {
  memoryLimitMiB: 512,
  cpu: 256,
});
const container = fargateTaskDefinition.addContainer("WebContainer", {
  image: ecs.ContainerImage.from...??
});

而且,事实证明,绝对没有办法从工件创建此容器映像: https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.ContainerImage。 html

可悲的是,这一切都是徒劳的。

如何创建一个实际工作的管道并将 C# 项目部署到 Fargate 服务? 这不像我要尝试实现一些复杂的东西 - 只是为了部署我的 C# 应用程序。 所以,我一定做错了什么。

你基本上已经得到了所有的部分。 由于addContainer函数的image属性需要类型ContainerImage ,我们可以看到几个用于定义该图像的选项( AssetImageEcrImage似乎是最相关的。)

如果你想要 go ECR 镜像路由,你可以只修改你添加的构建步骤以将构建的容器推送到 ECR,然后使用EcrImage提供任务定义( 本文有一个有用的 buildspec.yml 可以使用) .

或者,您可以使用AssetImage ,将其指向存储库中的正确位置,并让 CDK 处理构建。 请注意,在此用例中,AssetImage 没有接受预构建的工件,而是生成工件本身。 这显然需要您的 Dockerfile 和 C# 代码与您的 CDK 代码位于同一存储库中。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM