How to find the number of allocated vcpus inside a Fargate task?

0

We want to dynamically configure an application running on Fargate ECS to have one thread for each vcpu allocated to it.

The application parameter can be configured via an environment variable.

I'd like to fetch the number of vcpu's allocated from inside the task container and set the environment variable before starting the application.

Is there a way (e.g. a file under /sys, for instnace?) to fetch this when the task starts up?

Amos
asked 7 months ago379 views
1 Answer
2
Accepted Answer

Hi, if you simply want to get the number of threads in a task, you can run the following command.

root@ip-172-31-1-51:/usr/local/apache2# python3 -c 'import os; print(os.cpu_count())'
2

If you definitely want to get the number of vCPUs, you need to run aws ecs describe-task-definition command to fetch the vCPU info.

root@ip-172-31-1-51:/usr/local/apache2# PAGER=cat aws ecs describe-task-definition --task-definition MyTaskDefinition --query "taskDefinition.cpu" --output text
256
profile picture
HS
answered 7 months ago
profile picture
EXPERT
reviewed 6 days ago
profile pictureAWS
EXPERT
reviewed 7 months ago
  • Yes, section ContainerDefinitions provides what you are after: "containerDefinitions": [ { "environment": [], "name": "wordpress", "links": [ "mysql" ], "mountPoints": [], "image": "wordpress", "essential": true, "portMappings": [ { "containerPort": 80, "hostPort": 80 } ], "memory": 500, "cpu": 10, "volumesFrom": [] },

  • Thank you. It looks like the Python command you suggest would do the trick, assuming you mean that it can execute inside the container.

    The other answer will be trickier since I want to fetch this information from inside the container itself, without requiring direct AWS API access.

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions