AWS CDK EcsDeployAction 更新现有的 Fargate 服务

AWS CDK EcsDeployAction update existing Fargate Service

我正在通过 AWS CDK 轻松部署 Fargate 服务。

现在我需要更新服务,例如任务图像。
我正在尝试通过使用 @aws-cdk/aws-codepipeline 和操作 EcsDeployAction

来完成此操作

我正在尝试导入和更新现有(以前部署的)fargate 服务,如下所示:

const pipeline = new codepipeline.Pipeline(this, 'MyPipeline')

// import an existing fargate service
const fargateService = ecs.FargateService.fromFargateServiceArn(
  this,
  "FargateService",
  "MyFargateServiceARN"
);

// Deploy a new version according to what 
const sourceStage = this.pipeline.addStage({
  stageName: 'Deploy',
  actions: [
    new codepipeline_actions.EcsDeployAction({
      actionName: "ECS-Service",
      service: fargateService,       <--- here the typescript error
      input: ...
    })
  ]
})

但它似乎不正确,因为我收到打字稿错误:

Property 'cluster' is missing in type 'IFargateService' but required in type 'IBaseService'

有什么想法吗?

类型不匹配。 EcsDeployActionProps expects the service prop 属于 IBaseService 类型。但是它从 fromFargateServiceArn.

得到一个不兼容的 IFargateService 类型

幸运的是,static fromFargateServiceAttributes(scope, id, attrs) returns 兼容类型 IBaseService 您正在寻找。