Empresas
Empregos
  • Sobre nós
  • Soluções
    • Publicação de vagas
      Publique sua vaga e receba candidatos qualificados em 48h.
    • Avaliações de candidatos
      Mais de 500 testes técnicos e psicológicos, mais anti-fraude.
    • Headhunting
      Busca executiva personalizada do início ao fim.
    • Folha de Pagamento + EOR
      Dispersão de folha e EOR em mais de 15 países da LATAM.
  • Preços
  • Empregos

0

733
Visualizações
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 Respostas
Responde à pergunta

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 Relatório
Responde à pergunta
Encontrar trabalhos remotos

Descubra a nova forma de encontrar um emprego!

melhores empregos
Principais categorias de trabalho
Empresas
Postar vaga Preços Comercial
Jurídico
Termos e Condições Política de privacidade
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomende algumas ofertas para mim
Preciso de ajuda