Sistema de envío de emails mediante el servicio de colas de Amazon SQS
¿Cómo funciona?
Informa el email de destino y el mensaje.
Se hará una petición a FastAPI (on-premise Alemania) que a su vez envia un mensaje a una cola AWS SQS.
Asincronamente un worker Lambda procesará la cola en USA
Se envian 2 emails al destinario en menos de 1 segundo!. Los procesos bloqueantes se ejecutarán asincronamente en USA.
Tecnología y funcionalidad
Aplicacion WEB con backend Fastapi (on-premise) en Alemania
En servidor Ubuntu dedicado (en Alemania). Instalamos librerias FastAPI + Boto3 (Amazon Web Services) .
Creamos subdominio pythontaller.lanube.app
Tenemos un servidor Apache2 instalado, para no instalar nginx, instalamos el modulo proxy_http. Esto redirige las peticiones del puerto 80 al 8000 (donde sirve nuestra aplicación FastAPI)
Instalmos el certificado HTTPS gratuito de Let´s Encrypt, mediante Certbot.
Los endpoint FastAPi pueden devolver JSON o vistas renderizadas con el motor Jinja2 (igual que Flask)
Enviamos mensajes a AWS SQS para su procesamiento asincrono. El endpoint no tiene ningun 'delay'.
El envio de mail puede ser un proceso lento, este FastAPI envia 2 mail a un mismo destinatario en pocos milisengundos.
El procesamiento de los mails se hará desde AWS procesos Lambda en USA.
AWS en USA
Usamos SQS para almacenamiento de mensajes
Cada mensaje
Conclusiones
Se pueden crear aplicaciones web extremadamente rápidas y escalables si usamos Quart (compatible con Flask).
este framework asyncrono puede gestionar miles de peticiones por segundo en un solo servidor. Aprovecha el potencial de los nuevos
servidores web ASGI asincronos (evolución de los servidores WSGI, peticiones sincronas)