AWS ECS Переопределения RunTask для памяти и процессора не работают - PullRequest
0 голосов
/ 25 мая 2018

Я пытаюсь переопределить ограничения процессора и памяти для контейнера при использовании команды RunTask .Я использую Python SDK, boto3.

Контейнер имеет ограничение ЦП по умолчанию 0 (неограниченно) и ограничение мягкой памяти 1024. Это все хорошо.

Когда я пытаюсьчтобы передать список containerOverrides команде RunTask, я не получаю сообщение об ошибке, задачи выполняются в основном так, как ожидалось.Я также переопределяю команду, выполняемую контейнером, и это работает - я вижу, что во время выполнения задачи команда была переопределена, и журналы отражают это.

Пределы ЦП и памяти, однако, не переопределяются. Я проверяю это, заглядывая в консоль AWS и видя, что процессор и память указаны как 0 и 1024, нокоманда показана переопределенной.Я также могу немного подсчитать, проверив экземпляр контейнера, чтобы убедиться, что память - это не нужный 2048, а должен быть 1024.

Вот несколько упрощенных кодов:

import boto3

client = boto3.client('ecs')

overrides = {
        "containerOverrides": [
        {
            "name": "runcommand",
            "command": command_wrapper,
            "cpu": 512,
            "memory": 2048,
            "memoryReservation": 2048
        }
        ]
    }

response = client.run_task(
        cluster='mycluster',
        taskDefinition='runcommand-qa',
        overrides=overrides,
        group='stackoverflow:run-command'
    )

Иtasks раздел ответа:

'tasks': [{
    'taskArn': 'arn:aws:ecs:us-east-1:12345667890:task/72f1a8ae-4f51-4717-acc6-fce3199a9e92',
    'group': 'stackoverflow:run-command',
    'attachments': [],
    'overrides': {
        'containerOverrides': [{
            'memoryReservation': 2048,
            'memory': 2048,
            'command': ['sh', '-c', '. /app/bin/activate && ./manage.py help'],
            'name': 'runcommand',
            'cpu': 512
        }]
    },
    'launchType': 'EC2',
    'lastStatus': 'PENDING',
    'containerInstanceArn': 'arn:aws:ecs:us-east-1:12345667890:container-instance/f0dd320e-b1de-413d-8e1c-c64b0799e473',
    'createdAt': datetime.datetime(2018, 5, 25, 9, 4, 3, 46000, tzinfo = tzlocal()),
    'version': 1,
    'clusterArn': 'arn:aws:ecs:us-east-1:12345667890:cluster/runcommand-qa',
    'memory': '2048',
    'desiredStatus': 'RUNNING',
    'taskDefinitionArn': 'arn:aws:ecs:us-east-1:12345667890:task-definition/runcommand-qa:127',
    'cpu': '512',
    'containers': [{
        'containerArn': 'arn:aws:ecs:us-east-1:12345667890:container/80949a81-747f-4729-a9d4-922007448729',
        'taskArn': 'arn:aws:ecs:us-east-1:12345667890:task/72f1a8ae-4f51-4717-acc6-fce3199a9e92',
        'lastStatus': 'PENDING',
        'name': 'runcommand',
        'networkInterfaces': []
    }]
}]

Что мне здесь не хватает?

...