我可以使用额外的命令行参数从命令行启动 aws fargate 进程吗?

Can I start an aws fargate process from the command-line with additional command-line arguments?

我正在尝试将一些批处理过程从公司网络迁移到 AWS Fargate/ECS。

我现在正在处理的过程是一个容器化的 Python 程序,它接受一些命令行参数。目前它是由詹金斯触发的。有一个作业定义调用同一个容器大约 50 次,每次的参数略有不同。当所有这些作业都执行完后,批处理就“完成”了。

目前所有这些作业都在公司内部服务器上执行,速度有点慢。我希望所有执行都在 AWS Fargate 上进行。

我已经为托管在 ECR 上的项目构建了一个映像,并且我已经能够通过创建任务定义然后将该任务添加到集群中的服务来 运行 该映像。

到目前为止一切似乎都运行良好,性能比公司熨斗上的 运行ning 好得多。

接下来我想做的是 运行 来自 AWS cli 工具的任务,但这次指定了一些命令行参数。那可以吗?有没有办法说 - “请 运行 这个任务定义,但改用这些命令行参数?”

我注意到有一个名为“ecs start-task”的 aws 命令,但它需要容器 ID。我不确定在哪里可以找到这些信息。开始任务是我 运行 之前定义的任务定义所需要的吗?

此外,由于我想用它来代替现有进程,有没有办法让我的 AWS CLI 命令块直到远程执行任务完成?

编辑 1:

我正在尝试“运行-task”命令,但文档并不清楚我需要为网络配置提供什么值?这只是一个批处理,因此根本不需要接受任何入站连接。它将连接到其他一些数据库:

>aws ecs run-task --task-definition fv-scf-0 --cluster fv-sal

An error occurred (InvalidParameterException) when calling the RunTask operation: Network Configuration must be provided when networkMode 'awsvpc' is specified.

编辑 2:

我想我已经弄清楚网络配置需要什么,但现在我该如何克服下一个错误?

>aws ecs run-task --task-definition fv-scf-0 --cluster fv-sal --network-configuration "awsvpcConfiguration={subnets=[subnet-x,subnet-y
5],securityGroups=[sg-z]}"

An error occurred (InvalidParameterException) when calling the RunTask operation: No Container Instances were found in your cluster.

您可以使用 aws ecs run-task 命令从命令行 运行 一个新容器。在 overrides 参数中,您将传递一个 command 值,该值会在容器启动时覆盖 运行 的命令。

记录了 ECS 容器覆盖 here