Migrer Python3 projet dans AWS

0

La question

J'ai été étudiant comment migrer mes python3 projet AWS, mais je suis incapable de trouver une solution. Mon python3 projet est assez simple:

daemon.py -> C'est une infinie while True boucle. Il ne Reçoit les demandes à un API. Il est important de faire autant de demandes par sec que possible. Puis il les stocke dans la base mysql. La demande est toujours la même, 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 -> l'Autre, tandis que la Véritable boucle à la recherche de changements dans la base de données mysql, lorsque détecte un changement envoie une requête GET à une API.

J'ai découvert lambda, mais je ne suis pas sûr si c'est une bonne idée d'exécuter la boucle infinie sur elle, comme je comprends, ils vous font payer par le temps d'exécution... et c'est une boucle infinie.

Merci à l'avance.

3

La meilleure réponse

1

Si c'est efficace pour vous, dépend uniquement de la façon dont beaucoup vous la valeur de chacun de ces téléchargements et nous n'avons pas assez d'informations pour savoir la réponse.

Il y a aussi une question de savoir si vous souhaitez exécuter tout le temps, ou à quelques reprises pour une durée spécifique. Dans le premier cas, fargate ou ec2 peut-être mieux les candidats, dans le second, il dépend de combien de temps vous exécutez le processus d'.

Il y a certaines choses que vous pouvez améliorer mais avec le système actuel, vous semblez être en attente pour chacune des réponses qui signifie que beaucoup de temps d'inactivité. Vous pouvez améliorer le débit soit avec async ou threadpool approches. (sauf si c'est vraiment un seul point de terminaison liste de tous les éléments)

Un autre est que vous n'avez pas nécessairement besoin de courir ship.py comme une boucle de surveillance si l'état ne change pas très souvent. Si vous êtes déjà dans AWS, vous pourriez faire la notification SQS messages au lieu de cela, ce qui mettrait le feu à la ship.py processus lambda - qui est en fait susceptible de vous faire économiser les ressources.

2021-11-23 00:41:40

Merci pour votre réponse. Le POST de réponse est un json et j'ai besoin de détecter le changement le plus vite possible (pour cette raison, faire beaucoup de POST requêtes/seconde). Cela doit fonctionner tous les temps 24x7. Sur ship.py et lambda, merci. Je suis déjà conscient à ce sujet et je sera probablement faire. Actuellement, je suis de plus en essayant de découvrir comment je peux migrer daemon.py comme c'est la clé.
Frank
0

Ok, trouvé la meilleure approche consiste à exécuter le démon dans EC2 avec Aurora et essayer de migrer ship.py comme viraptor dit.

2021-11-23 12:31:06
0

si vous utilisez un lambda sans serveur python de projet, vous serez à même de faire ce que vous voulez, mais vous serez facturé de manière assez substantielle.

voici les docs: AWS Lambda-Python

Également utiliser SQS à envoyer des données à partir de votre script à la base de données.

2021-11-23 13:00:33

Dans d'autres langues

Cette page est dans d'autres langues

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................