如何通过API调用设置ECS服务的最小和最大任务数?我知道您可以通过以下api设置所需的任务数,但是我看不到任何地方设置最小和最大任务?我想念什么吗?我正在使用PHP API,但是这里的任何见解都会有所帮助。
https://docs.aws.amazon.com/aws-sdk-php/v3/api/api-ecs-2014-11-13.html#updateservice
答案 0 :(得分:2)
我的理解是,只能使用ECS服务的Auto Scaling策略设置最小和最大数量。 https://docs.aws.amazon.com/AmazonECS/latest/developerguide/service-auto-scaling.html。 您将需要创建自动缩放策略来进行设置。
结合使用Amazon ECS,CloudWatch和Application Auto Scaling API,可以实现Service Auto Scaling。
对于您而言,仅使用Application AutoScaling API,调用registerScalableTarget方法就足够了。这是示例。
$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
]);
答案 1 :(得分:0)
对于那些正在寻找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