【问题标题】:How to set ECS Service minimum & maximum tasks如何设置 ECS 服务最小和最大任务
【发布时间】:2019-04-05 06:40:04
【问题描述】:

如何通过API调用设置ECS服务的最小和最大任务数?我知道您可以通过以下 api 设置所需的任务数,但我没有看到任何地方可以设置最小和最大任务?我错过了什么吗?我正在使用 PHP API,但这里的任何见解都会有所帮助。

https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ecs-2014-11-13.html#updateservice

【问题讨论】:

    标签: amazon-web-services aws-cli amazon-ecs autoscaling aws-php-sdk


    【解决方案1】:

    对于那些寻找 CLI 示例的人,

    aws application-autoscaling \
    register-scalable-target \
    --service-namespace ecs \
    --resource-id service/cluster-name/service-name \
    --scalable-dimension ecs:service:DesiredCount \
    --min-capacity 2 \
    --max-capacity 4
    

    【讨论】:

      【解决方案2】:

      我的理解是,只能使用 ECS 服务的 Auto Scaling 策略设置最小值和最大值。 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html。 您需要创建 Auto Scaling 策略来设置这些。

      通过结合使用 Amazon ECS、CloudWatch 和 Application Auto Scaling API,Service Auto Scaling 成为可能。

      在您的情况下,仅使用 Application AutoScaling API,调用 registerScalableTarget 方法就足够了。这是示例。

      https://docs.aws.amazon.com/aws-sdk-php/v3/api/class-Aws.ApplicationAutoScaling.ApplicationAutoScalingClient.html

      $result = $client->registerScalableTarget([
          'MaxCapacity' => 20,
          'MinCapacity' => 2,
          'ResourceId' => 'service/default/sample-webapp', // REQUIRED
          'RoleARN' => 'arn:aws:iam::012345678910:role/ApplicationAutoscalingECSRole',
          'ScalableDimension' => 'ecs:service:DesiredCount', // REQUIRED
          'ServiceNamespace' => 'ecs', // REQUIRED
      ]);
      

      【讨论】:

      • 我有自动缩放工作,问题是我不知道如何通过 API 调用更新最小和最大任务数。我只能通过在线控制台更新最小值和最大值。如果您知道如何执行此操作,能否提供 API 调用的链接?
      • @BlaneTownsend 我已经用 PHP SDK 示例编辑了我的答案。
      猜你喜欢
      • 2020-02-07
      • 2019-03-28
      • 1970-01-01
      • 2016-02-08
      • 2014-11-19
      • 2020-12-02
      • 2018-02-11
      • 1970-01-01
      • 2022-11-16
      相关资源
      最近更新 更多