首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在AWS CDK中从Fargate集群获取所有服务

在AWS CDK中从Fargate集群获取所有服务
EN

Stack Overflow用户
提问于 2021-08-16 00:24:13
回答 1查看 108关注 0票数 0

我需要能够在AWS CDK中仅给定集群构造的情况下获得所有服务(本例中为TypeScript,但任何语言都可以)。

类似于下面的内容。

代码语言:javascript
复制
import { Cluster, FargateService } from '@aws-cdk/aws-ecs';

private updateClusterServices(cluster: Cluster): void {
  for (const service of cluster.getServices()) {
    // do something with service
  }
}

但是,Cluster上没有这样的getServices()方法。

有没有其他方法可以做到这一点,或者由于某种原因,CDK根本不可能做到这一点?

EN

回答 1

Stack Overflow用户

发布于 2021-08-20 01:04:12

事实证明,如果你至少也有服务名称,就有一种方法可以做到这一点。

代码语言:javascript
复制
import { Cluster, FargateService } from '@aws-cdk/aws-ecs';

private updateClusterServices(scope: Construct, cluster: Cluster, serviceName: string): void {
  const service = FargateService.fromFargateServiceAttributes(scope, 'FindFargateServices', {
    cluster: cluster,
    serviceName: serviceName,
  });

  console.log(service.serviceArn);

  // do something with service
}

结果似乎是TaskSet serviceArn。

代码语言:javascript
复制
arn:aws:ecs:ap-southeast-2:1234567890:service/backend

将其与CLI输出进行比较。

代码语言:javascript
复制
$ aws ecs describe-services --cluster blue-green-cluster --services backend
{
    "services": [
        {
            "serviceArn": "arn:aws:ecs:ap-southeast-2:1234567890:service/blue-green-cluster/backend",
            "serviceName": "backend",
            "clusterArn": "arn:aws:ecs:ap-southeast-2:1234567890:cluster/blue-green-cluster",
...
            "taskSets": [
                {
                    "taskSetArn": "arn:aws:ecs:ap-southeast-2:1234567890:task-set/blue-green-cluster/backend/ecs-svc/2091139980078414071",
                    "serviceArn": "arn:aws:ecs:ap-southeast-2:1234567890:service/backend",
                    "clusterArn": "arn:aws:ecs:ap-southeast-2:1234567890:cluster/blue-green-cluster",
...
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68796290

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档