Amazon web services 如何为任务提供不同的环境变量ECS Terraform

Amazon web services 如何为任务提供不同的环境变量ECS Terraform,amazon-web-services,amazon-ec2,terraform,amazon-ecs,Amazon Web Services,Amazon Ec2,Terraform,Amazon Ecs,我有一个ECS服务,在该ECS服务中,我想从相同的任务定义启动3个任务。我需要将这些任务中的每一个都放在一个单独的EC2实例上,这似乎很简单,但是我想向每个正在运行的任务传递一个不同的命令,以指定在哪里可以找到它们的配置,并通过我正在运行的应用程序中的CLI指定一些其他选项 例如,对于任务1,我希望传递run node CONFIG_PATH=“/tmp/nodes/node_0和任务2run node CONFIG_PATH=“/tmp/nodes/node_1”--bootnode true

我有一个ECS服务,在该ECS服务中,我想从相同的任务定义启动3个任务。我需要将这些任务中的每一个都放在一个单独的EC2实例上,这似乎很简单,但是我想向每个正在运行的任务传递一个不同的命令,以指定在哪里可以找到它们的配置,并通过我正在运行的应用程序中的CLI指定一些其他选项

例如,对于任务1,我希望传递
run node CONFIG_PATH=“/tmp/nodes/node_0
和任务2
run node CONFIG_PATH=“/tmp/nodes/node_1”--bootnode true
和任务3
run node CONFIG_PATH=“/tmp/nodes/node_0--http true”

我正在努力了解如何使用Terraform在单个服务中管理这样的单个任务实例,管理完全相同的多个实例似乎非常容易,但我找不到一种方法将自定义覆盖传递给每个运行相同任务定义的任务


我认为这可能是一个不同的开发操作自动化工具的工作,但如果可能的话,我希望在Terraform中继续这样做。

这不是Terraform的限制。这是ECS服务的工作方式-运行相同任务定义的精确副本。。因此,您不能像所有这些一样自定义ECS服务中的单个任务任务应该是相同的、可互换的和一次性的


要提供覆盖,您必须在服务之外运行任务,您可以使用AWS CLI或任何AWS SDK中的等效工具的
——覆盖
。遗憾的是,terraform中没有等效工具,除了使用AWS CLI运行
本地执行

听起来您只需要使用AWS CLI或我们e是一个
.tfvars
文件。除此之外,我很难回答您的问题。听起来它应该使用单独的任务定义。为什么只使用一个?