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



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

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

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

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

到目前为止,一切似乎都很顺利,表现比在公司铁上运行要好得多。

我想做的下一件事是从AWS cli工具运行该任务,但这次指定了一些命令行参数。能做到吗?有没有办法说";请运行此任务定义,但使用这些命令行参数">

我注意到有一个aws命令名为"ecs启动任务";,但这需要一个容器ID。我不知道在哪里可以找到这些信息。启动任务是我运行之前定义的任务定义所需要的吗?

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

编辑1:

我正在尝试";运行任务";命令,但文档不太清楚我需要为网络配置提供什么价值?这只是一个批,所以根本不需要接受任何入站连接。它将连接到其他一些数据库:

>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容器覆盖记录在这里。

最新更新