Migrar Python3 projeto na AWS

0

Pergunta

Eu tenho sido a investigar como migrar meu python3 projeto para a AWS, mas eu sou incapaz de encontrar uma solução. Meu python3 projeto é bastante simples:

daemon.py -> Este é um infinito enquanto o Verdadeiro ciclo. Ele não Recebe pedidos para uma API. É importante fazer o máximo de solicitações por segundo possível. Em seguida, ele armazena no banco de dados do mysql. O pedido é sempre o mesmo, OBTER /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 -> Outro enquanto o Verdadeiro ciclo procurando por alterações no mysql, quando detecta uma alteração envia uma solicitação GET para uma API.

Eu descobri sobre o lambda, mas eu não tenho certeza se é uma boa idéia para executar o loop infinito, como eu entendo que eles cobram pelo tempo de execução... e este é o loop infinito.

Obrigado antecipadamente.

3

Melhor resposta

1

Se é eficaz para você, só depende de quanto você valoriza cada uma dessas downloads e não temos informações suficientes para saber a resposta.

Há, também, uma questão de se você deseja executar isso o tempo todo, ou em alguns horários específicos para uma duração específica. No primeiro caso, fargate ou ec2 podem ser melhores candidatos, no segundo, depende de quanto tempo você execute o processo para.

Há algumas coisas que você pode melhorar ainda que com o actual sistema, você parece estar esperando para cada uma das respostas, o que significa um monte de tempo ocioso. Você pode melhorar a taxa de transferência com assíncrono ou threadpool abordagens. (a menos que seja realmente apenas um único ponto de extremidade com uma listagem de todos os itens)

Outra é que você não precisa necessariamente de execução ship.py como um monitoramento de loop se o estado não mudam com frequência. Se você já está na AWS, você pode fazer a notificação, SQS mensagens em vez disso, que seria o fogo ship.py o processo como um lambda - que é, na verdade, provavelmente para economizar recursos.

2021-11-23 00:41:40

Obrigado por sua resposta. O POST de resposta é um json e eu preciso detectar a mudança o mais rápido possível (por essa razão, fazendo muitos pedidos POST/segundo). Este deve executar todos os tempos 24x7. Sobre ship.py e lambda, obrigado. Eu já estou consciente sobre isso e eu provavelmente vou fazer isso. Atualmente estou mais tentando descobrir como eu posso migrar daemon.py como essa é a chave.
Frank
0

Ok, descobri que a melhor abordagem é executar o daemon em EC2 com Aurora e tentar migrar ship.py como viraptor disse.

2021-11-23 12:31:06
0

se você usar um lambda sem servidor python projeto, você vai ser para fazer o que você pretende, mas você será cobrado de forma bastante significativa.

aqui estão os docs: AWS-Lambda-Python

Também uso SQS para envio de dados a partir de seu script para o banco de dados.

2021-11-23 13:00:33

Em outros idiomas

Esta página está em outros idiomas

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