Перенос проекта Python3 в AWS

0

Вопрос

Я изучал, как перенести мой проект python3 в AWS, но я не могу найти решение. Мой проект python3 довольно прост:

daemon.py -> Это бесконечный, хотя и истинный цикл. Он действительно получает запросы к API. Важно делать как можно больше запросов в секунду, насколько это возможно. Затем он сохраняет его в базе данных mysql. Запрос всегда один и тот же, GET /api/check_stock.

while True:
  r = requests.post(url,json=body, proxies=proxy_dict)
  r_json = json.loads(r.content)
  insert_db(r_json)

ship.py -> Другой, в то время как истинный цикл ищет изменения в mysql, когда обнаруживает изменение, отправляет запрос GET в API.

Я узнал о лямбде, но я не уверен, что хорошая идея запускать бесконечный цикл на нем, так как я понимаю, что они взимают с вас плату за время выполнения... и это бесконечный цикл.

Заранее спасибо.

3

Лучший ответ

1

Будет ли это эффективно для вас, зависит только от того, насколько вы цените каждую из этих загрузок, и у нас недостаточно информации, чтобы знать ответ.

Существует также вопрос о том, хотите ли вы запускать это все время или в определенное время в течение определенного периода времени. В первом случае fargate или ec2 могут быть лучшими кандидатами, во втором-это зависит от того, как долго вы запускаете процесс.

Есть некоторые вещи, которые вы можете улучшить с помощью текущей системы - вы, кажется, ждете каждого ответа, что означает много времени простоя. Вы можете повысить пропускную способность с помощью асинхронного или потокового подхода. (если только на самом деле это не единственная конечная точка, в которой перечислены все элементы)

Другое дело, что вам не обязательно нужно бежать ship.py в качестве цикла мониторинга, если состояние меняется не очень часто. Если вы уже работаете в AWS, вы можете вместо этого отправлять уведомления в виде сообщений SQS, что приведет к ship.py обрабатывайте как лямбда - это, скорее всего, сэкономит вам некоторые ресурсы.

2021-11-23 00:41:40

Спасибо за ваш ответ. Ответ на СООБЩЕНИЕ-это json, и мне нужно как можно быстрее обнаружить изменение (по этой причине я делаю много запросов на публикацию в секунду). Это должно выполняться все время 24x7. О ship.py и лямбда, спасибо. Я уже знаю об этом и, скорее всего, так и сделаю. В настоящее время я все больше пытаюсь понять, как я могу мигрировать daemon.py поскольку это и есть ключ.
Frank
0

Хорошо, выяснил, что лучший подход-запустить демона в EC2 с Aurora и попытаться мигрировать ship.py как сказал вираптор.

2021-11-23 12:31:06
0

если вы используете проект python без сервера lambda, вам придется делать то, что вы намереваетесь, но вам будет выставлен довольно существенный счет.

вот документы: AWS-Лямбда-Python

Также используйте SQS для передачи данных из вашего скрипта в базу данных.

2021-11-23 13:00:33

На других языках

Эта страница на других языках

Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................