Ashish Sharma
Ashish Sharma

Reputation: 672

Unable to find Minimum/Maximum task value for ECS

I am working with aws boto3 lib and trying to retrieve certain values. I first retrieve all cluster list, then fetch specific services, then call describe-service for them. But I am unable to retrieve two fields Minimum tasks and Maximum tasks for services which get displayed on AWS ECS console page under Auto Scaling tab.

Anybody has any idea how to get these values from?

Upvotes: 0

Views: 644

Answers (2)

Ashish Sharma
Ashish Sharma

Reputation: 672

Thanks Mark B for help. You are right and I understand that aws ecs service has to register with autoscaling service which is a separate service. I am providing sample cli and python code to retrieve these values for other now.

aws ecs describe-services --cluster MAGIC-Bonus-Wrappers --services service-name
aws application-autoscaling describe-scalable-targets --service-namespace ecs --resource-ids service/cluster-name/service-name

Python Code:

client = session.client('application-autoscaling')
response = client.describe_scalable_targets(
    ServiceNamespace='ecs',
    ResourceIds=[serviceId])
    
    def_val = -1, -1
    if "ScalableTargets" in response and len(response['ScalableTargets']) > 0 :
        target = response['ScalableTargets'][0]
        if 'MinCapacity' in target and 'MaxCapacity' in target:
            return target['MinCapacity'], target['MaxCapacity']
        else:
            return def_val

Upvotes: 0

Mark B
Mark B

Reputation: 200889

The ECS console hides this fact, but those are actually in the Application AutoScaling configuration, not the ECS configuration. I believe you would need to call describe_scalable_targets in ApplicationAutoScaling to get those values.

Upvotes: 1

Related Questions