如何将新容器附加到 AWS ECS 中的 运行 任务?
how to append a new container to a running task in AWS ECS?
我正在使用 AWS ECS 启动容器以进行 运行 自动化测试,并且它们的数量无法事先知道,因为它们是由不同的事件触发的。
由于某些配置原因,我必须仅在 EC2
模式下启动这些任务(而不是 FARGATE
),
问题是:我需要将新容器添加到 运行ning 任务,但我无法实现,我找到的唯一方法是为每个新容器启动一个新任务,但是此解决方案在某些情况下非常昂贵。
我正在使用 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
)
所以我的问题是:有没有办法将新容器添加到 运行ning 任务?
简短回答:不可能,因为容器仅在任务创建时定义。
我正在使用 AWS ECS 启动容器以进行 运行 自动化测试,并且它们的数量无法事先知道,因为它们是由不同的事件触发的。
由于某些配置原因,我必须仅在 EC2
模式下启动这些任务(而不是 FARGATE
),
问题是:我需要将新容器添加到 运行ning 任务,但我无法实现,我找到的唯一方法是为每个新容器启动一个新任务,但是此解决方案在某些情况下非常昂贵。
我正在使用 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
)
所以我的问题是:有没有办法将新容器添加到 运行ning 任务?
简短回答:不可能,因为容器仅在任务创建时定义。