创建一个空的 cdk 管道来部署任何 lambda 代码

Create one empty cdk pipeline to deploy any lambda code

我们可以创建一个简单的 cdk 管道来自我更新管道,如 (here) 所示 但是部署和更新 lambda 代码的许多微服务只有一个管道。 这可能吗。这样我们就不必为每个微服务创建管道。

如果微服务不在同一个存储库中,我可能不会推荐它。可以添加额外的源阶段,但我不能说当有多个 repos 时管道是如何触发的。

如果微服务在同一个仓库中,你当然可以这样做。代码的结构取决于您。您可以将每个微服务的所有资源分组在一个 Stack 中,然后有 1 个 Stage 来部署每个 MicroserviceStack。

var pipeline = new CdkPipeline(this, "Test", new CdkPipelineProps());

pipeline.AddApplicationStage(new AllMicroservicesStage(this, "Test", new StageProps()));


class AllMicroservicesStage : Stage
{
  var ms1 = new Microservice1Stack();

  var ms2 = new Microservice2Stack();

  ...
}

或者将每个微服务分离为一个 Stage,每个微服务中都有一组 Stack。

var pipeline = new CdkPipeline(this, "Test", new CdkPipelineProps());

pipeline.AddApplicationStage(new Microservice1Stage(this, "Test", new StageProps()));

pipeline.AddApplicationStage(new Microservice2Stage(this, "Test2", new StageProps()));


class Microservice1Stage : Stage
{
  var s1 = new WebsiteStack();

  var s2 = new QueueProcessingServiceStack();

  var s3 = new AuthServerStack();

  ...
}

class Microservice2Stage : Stage
{
  var s1 = new InternalWebsiteStack();

  var s2 = new NetworkInfrastructureStack();

  var s3 = new ApiStack();

  ...
}

这只是 C# 的伪代码。