如何将新容器附加到AWS ECS中正在运行的任务?

时间:2019-03-17 18:32:40

标签: amazon-web-services boto3 amazon-ecs

我正在使用AWS ECS启动容器以运行自动化测试,并且由于它们是由不同事件触发的,因此无法事先知道其数量。

出于某些配置原因,我只能以EC2模式(而不是FARGATE)启动这些任务,

问题是:我需要向正在运行的任务中添加新容器,但我无法实现这一目标,我发现的唯一方法是为每个新容器启动一个新任务,但是这种解决方案在某些情况下非常昂贵案例。

我正在使用boto3来启动新的任务和容器,我与您分享以下这部分代码来做到这一点:

client = boto3.client('ecs', region_name="eu-west-1")

networkConfiguration = {
            'awsvpcConfiguration': {
                'subnets': ['subnet-01', 'subnet-06'],
            }
        }

resp = client.run_task(
        cluster='run-on-demand',
        launchType='EC2',
        taskDefinition="task-01-ec2",
        networkConfiguration=networkConfiguration,
        overrides={
            'containerOverrides': [
                {
                    'name': "task-01-c1-ec2",
                    'environment': env_vars,
                    'cpu': 512,
                    'memory': 2048
                }
            ],
        },
        startedBy="admin",
        count=1
    )

所以我的问题是:有什么方法可以将新容器添加到正在运行的任务中?

1 个答案:

答案 0 :(得分:0)

简短答案:不可能,因为容器仅在任务创建时定义。