Как получить существующий кластер по имени?

Я использую CDK и хотел бы использовать существующий кластер (для ECS).

Я пробую это, однако это показывает,

ошибка, например Property 'fromClusterName' does not exist on type 'typeof Cluster'. Did you mean 'fromClusterArn'?

const clusterName = "mycluster"
const cluster = ecs.Cluster.fromClusterName(this, "StCluster", {
  clusterName: clusterName
});

Тем не менее, я хочу получить кластер name, а не arn

Наверное, стоит заранее взять arn по имени?

Я проверяю этот документ, нет способа получить Cluster по имени

https://docs.aws.amazon.com/cdk/api/v2/docs/aws-cdk-lib.aws_ecs.Cluster.html

Как я могу это сделать?


123
1

Ответ:

Решено

Вы можете использовать fromClusterAttributes, но вам также понадобится vpc, в котором находится кластер. Вы можете импортировать его, если знаете vpc id.

fromClusterAttributes предпочтительнее fromClusterArn, поскольку он также предоставляет доступ к vpc и другим свойствам.

const clusterName = "mycluster";
const vpcID = "12345abcde";

const myVpc = ec2.Vpc.fromVpcAttributes(this, "iVPC", {
  vpcId: vpcID,
// For example
  availability_zones: ["us-east-1a"]
});

const cluster = ecs.Cluster.fromClusterAttributes(this, "iCluster", {
  vpc: myVpc,
  clusterName: clusterName
});