在AWS ECS上,您可以运行任务或服务.
如果使用run_task(**kwargs)
运行任务,则可以选择覆盖某些任务选项,例如容器环境变量,这样就可以配置容器内的事物.那很棒.
现在,我找不到如何使用create_service(**kwargs)
执行相同操作的方法.您只能指定任务,因此创建的容器将按照任务定义中指定的配置运行.无法配置它.
有没有办法修改服务中的任务,或者AWS ECS服务无法做到这一点?
最佳答案 这是不可能的.如果您认为服务如何工作,他们会创建X个任务副本.任务的所有实例都具有相同的参数,因为目的是扩展任务 – 他们应该完成相同的工作.通常,流量是负载平衡的(服务配置的一部分),因此不希望用户在下一次获得与先前请求不同的响应,因为结束了不同配置的任务.所以底线是 – 这是设计的.
由于参数是共享的,因此如果需要更改参数,则需要创建任务的新定义,然后将其作为服务启动(或更新现有服务).
如果您希望任务知道其他任务(因此行为不同),例如将数据写入分片存储的不同分片,则必须在任务逻辑中实现该任务.