簡體   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