Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

734
Vistas
Registros de comprobación de estado de Python FastAPI

Recientemente creé una API de python utilizando el marco FastAPI y funcionó bien en mi servicio AWS ECS. Configuré un punto final /health para las comprobaciones de estado de ALB. El punto de entrada para mi contenedor ECS es este comando

 ENTRYPOINT ["app/start.sh"]

y esto es lo que tengo en mi start.sh

 uvicorn main:app --host 0.0.0.0

El problema que tengo es que mis registros de ECS se llenan con 200 OK cuando ALB llega al punto final /health. Es muy frustrante que apenas puedo encontrar mis registros de API y Cloudwatch está lleno de registros de punto final de salud. ¿Hay alguna manera de evitar los registros de punto final de salud?

ingrese la descripción de la imagen aquí

 @app.get("/health", response_class=PlainTextResponse) def healthcheck(): return "200"
over 4 years ago · Santiago Trujillo
1 Respuestas
Responde la pregunta

0

El comentario sobre este problema de github proporciona un ejemplo de cómo filtrar los registros para un punto final determinado al usar uvicorn, desde su aplicación de Python.

Explica que debe definir un filtro para el punto final y agregarlo al registrador. Como MatsLindh mencionó en los comentarios a continuación , el método anterior filtra cualquier aparición de /health en los mensajes de registro, lo que significa que también filtraría puntos finales como /foo/health , /foo/health/bar etc.

Un ejemplo modificado de lo anterior que filtra los registros de acceso para el punto final /health :

 import logging import uvicorn from fastapi import FastAPI app = FastAPI() # Define the filter class EndpointFilter(logging.Filter): def filter(self, record: logging.LogRecord) -> bool: return record.args and len(record.args) >= 3 and record.args[2] != "/health" # Add filter to the logger logging.getLogger("uvicorn.access").addFilter(EndpointFilter()) # Define the API endpoints @app.get('/health') def health(): print('health endpoint') @app.get('/test') def test(): print('test endpoint')

Al presionar el punto final /test , podemos ver que hay un registro de acceso y la salida de la función. No hay registro de acceso para el punto final /health , solo la salida de la función.

 INFO: Started server process [11272] INFO: Waiting for application startup. INFO: Application startup complete. INFO: Uvicorn running on http://127.0.0.1:8000 (Press CTRL+C to quit) test endpoint INFO: 127.0.0.1:54014 - "GET /test HTTP/1.1" 200 OK health endpoint
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda