AWS Batch имеет планировщик DAG, технически вы можете определить job1, job2, job3 и указать AWS Batch запускать их в таком порядке.Но я бы не рекомендовал этот маршрут.
Чтобы все вышеперечисленное работало, вам нужно создать 3 образа докера.изображение1, изображение2, изображение3.а затем поместите их в ECR (Docker Hub также может работать, если не используется тип запуска Fargate).
Я не думаю, что это имеет смысл, если у каждого задания громоздкого нет своего собственного времени выполнения, которое отличается от других.
Вместо этого я написал бы программу на Python, которая вызывает 1.py 2.py и 3.py, поместил бы это в образ Docker и запустил пакетное задание AWS или просто задачу ECS Fargate.
main.py:
import subprocess
exit_code = subprocess.call("python3 /path/to/1.py", shell=True)
# decide if you want call 2.py and so on ...
# 1.py will see the same stdout, stderr as main.py
# with batch and fargate you can retrieve these form cloudwatch logs ...
Теперь у вас есть образ Docker, который просто нужно где-то запустить.Fargate быстр в запуске, немного дорог, имеет максимальный лимит 10 ГБ для временного хранилища.AWS Batch медленно запускается при холодном запуске, но может использовать точечные экземпляры в вашей учетной записи.Возможно, вам потребуется создать пользовательский AMI для работы пакета AWS.т.е. если вы хотите больше памяти.
Примечание: для тех, кто хочет кричать в shell = True, и main.py, и 1.py пришли из одной и той же кодовой базы.Это пакетная работа, а не API для Интернета, который взял ее из запроса пользователя.