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



我们可以创建一个简单的cdk管道吗?但是对于许多部署和更新lambda代码的微服务来说,只有一个管道。这可能吗?这样我们就不必为每个微服务创建管道了。

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

如果微服务在同一个repo中,你当然可以这样做。代码的结构取决于您。你可以将每个微服务的所有资源分组在一个堆栈中,然后有一个阶段来部署每个微服务堆栈。

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,在每个Stage中包含堆栈集合。

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#的伪代码。

相关内容

  • 没有找到相关文章

最新更新