Простой способ автоматизировать запуск одного и того же сценария Python в нескольких экземплярах EC2? - PullRequest
0 голосов
/ 08 июля 2019

У меня 4 экземпляра linux EC2, созданных из того же AMI, который я использую для обработки файлов в S3.Я запускаю один и тот же скрипт Python на каждом экземпляре.Для обработки требуется каталог файлов в S3 и число, указывающее, какие файлы он должен обрабатывать.Скажем, mydir содержит myfile1 ... myfile8.

В экземпляре 0 я вызываю: python process.py mydir 0 Это заставляет его обрабатывать myfile1 и myfile5.

В экземпляре 1 я вызываю: процесс python.py mydir 1 Это заставляет его обрабатывать myfile2 и myfile2.

И т. д.

Внутри скрипта я делаю: keys = keys [pid :: 4] где pid - аргумент изкомандная строка.

Я перераспределяю изменения в своем скрипте Python путем синхронизации с S3.

Есть ли простой способ автоматизировать это далее?Я хотел бы нажать одну кнопку и сказать dir = yourdir, чтобы он синхронизировал код с s3 и запускался на каждом экземпляре.

1 Ответ

1 голос
/ 08 июля 2019

Вы можете попробовать использовать Fabric .
Пример взят из документации Fabric:

from fabric import Connection
result = Connection('web1.example.com').run('uname -s', hide=True)
msg = "Ran {0.command!r} on {0.connection.host}, got stdout:\n{0.stdout}"
print(msg.format(result))

# Output:
# Ran 'uname -s' on web1.example.com, got stdout:
# Linux
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...