AWS ECS runTask覆盖端口映射

问题描述 投票:0回答:1

我有Lambda函数按计划执行。

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)中设置的端口映射。

如何运行相同的任务定义并忽略/覆盖端口映射?

或者是否有更好的方法来启动任务并在其中运行单个bash命令?

amazon-web-services docker amazon-ecs
1个回答
0
投票

目前没有办法在运行新任务时覆盖端口映射。您可以覆盖的允许值列在此处:ContainerOverride documentation

要实现所需,您应该使用所需的端口映射保留第二个任务定义,或使用动态端口映射,以便在运行临时任务时不会发生冲突。

© www.soinside.com 2019 - 2024. All rights reserved.