如何使用 cdk python 将现有 ECS 服务导入 code_pipeline

How to import the existing ECS Service into code_pipeline using cdk python

我使用 EC2 实例部署 ECS 集群后。

现在我想写code_pipeline部署服务到ECS服务集群

deploy_actions = aws_codepipeline_actions.EcsDeployAction(
                action_name="DeployAction",
                service=ecs.IBaseService(cluster=cluster_name,service=service_name),
                input=build_output,
            )

Cluster_name 和 ecs service_name 已经存在。

我想使用 cdk python.

将现有集群和服务导入 code_pipeline

但是不行。

请教我如何定义service=ecs.IBaseService

有一种方法可以导入现有的 ECS 集群 from_cluster_attributes

CDK 存在多个问题或缺陷,因此可能无法正常工作。例如,导入现有 VPC 的 from 方法不起作用(不确定是否已修复)。

中所述,我们需要from_cluster_attributes函数。

但是你需要提供vpc实例和安全组。

完整代码如下:

vpc = ec2.Vpc.from_lookup(self, "spin",vpc_id ='vpc-')
security_group = ec2.SecurityGroup.from_security_group_id(self, 'r-sg', 'sg-')
cluster = ecs.Cluster.from_cluster_attributes(self, cluster_name="-pi",
                                              security_groups[security_group], 
                                              id="i-0", vpc=vpc)