繁体   English   中英

每次运行时如何将不同的命令行 arguments 传递给 aws 中的任务?

[英]How can I pass different command line arguments to a Task in aws every time I run it?

我想完成什么

我想要一个计算量大的 python function :

  1. 从 S3 存储桶中获取文件
  2. 改造它
  3. 然后将新文件保存到 S3 存储桶

我以前做过像 lambda 这样的函数,但是这个计算量很大,需要很长时间,所以我决定最好把 package 放在容器里,放在 ECS 上,通过 Fargate 运行。 (如果我做错了,请原谅我使用这些术语,我还没有完全理解这些概念)

... 实际上:

所以我希望能够运行具有我的 docker 容器图像的任务,就像我在本地运行我的容器一样,每次运行时都将 arguments 传递给它,并且这些 arguments 每次运行都是不同的:

运行 1:

docker run python-image input_file_path_1 output_file_path_1

运行 2:

docker run python-image input_file_path_2 output_file_path_2

据我了解,我可以更改任务定义以包括将 arguments 传递给脚本,这似乎将它们“硬编码”到任务定义中,这意味着它们不能在每次运行时更改。

题?

所以本质上,我的问题是如何运行这个任务,无论是从 cli 或用户界面还是 lambda function,每次我运行任务时我都可以动态地传递 arguments?

谢谢:)

如果您查看ECS RunTask API ,您将看到一个overrides参数。 overrides参数内部,您可以覆盖诸如容器环境变量和command之类的内容。 在您的实例中,每次调用 RunTask 时传递command的覆盖听起来最合适。

您提到了 CLI 和 AWS Lambda。对于 CLI,您可以在此处查看文档。 您没有提到您为 AWS Lambda 使用什么编程语言,但是所有 AWS SDK 都有一个 ECS RunTask,您可以在它们各自的文档中查找以了解如何传递覆盖。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM