Business
Jobs
  • About Us
  • Solutions
    • Job Postings
      Post your job and receive qualified candidates in 48h.
    • Candidate Assessments
      500+ technical and psychological tests, plus anti-fraud.
    • Headhunting
      Tailor-made executive search from start to finish.
    • Payroll + EOR
      Payroll dispersal and EOR across 15+ LATAM countries.
  • Pricing
  • Jobs

0

735
Views
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 answers
Answer question

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 Report
Answer question
Find remote jobs

Discover the new way to find a job!

Top jobs
Top job categories
Business
Post vacancy Pricing Sales
Legal
Terms and conditions Privacy policy
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Show me some job opportunities
There's an error!