Сопоставления портов runTask для AWS ECS - PullRequest
0 голосов
/ 31 августа 2018

У меня есть лямбда-функция, которая выполняется по расписанию.

let params = {
    taskDefinition: taskDefinition,
    cluster: process.env.cluster,
    startedBy: 'lambda',
    count: process.env.count || 1,
    overrides: {
        containerOverrides: [{
            name: containerName,
            command: [
                '/bin/bash',
                '/usr/share/nginx/html/console/cronjobs/' + process.env.command
            ]
        }]
    }
};

if (typeof memory !== 'undefined') {
    params.overrides.containerOverrides[0].memory = parseInt(memory);
}

ecs.runTask(
    params,
    (error, data) => {}
);

Он пытается запустить новую задачу из существующего определения задачи. Проблема заключается в том, что один из контейнеров Docker уже запущен с этим определением задачи (постоянный запуск, а не автоматический выход) и использует сопоставления портов, заданные в определении задачи (например, 80 => 8080).

Как запустить одно и то же определение задачи и игнорировать / переопределить сопоставления портов?

Или есть лучший способ запустить Task и запустить в нем одну команду bash?

1 Ответ

0 голосов
/ 03 сентября 2018

В данный момент нет способа переопределить сопоставления портов при запуске новой задачи. Допустимые значения, которые вы можете переопределить, перечислены здесь: Документация ContainerOverride

Чтобы достичь того, что вы хотите, вы должны сохранить второе определение задачи с желаемым сопоставлением портов или использовать динамическое сопоставление портов, чтобы не возникало конфликтов при запуске эфемерной задачи.

...