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
質問済み 8ヶ月前410ビュー
1回答
2
承認された回答

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
回答済み 8ヶ月前
profile picture
エキスパート
レビュー済み 24日前
profile pictureAWS
エキスパート
レビュー済み 8ヶ月前
  • 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.

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ