You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用AWS Lambda PowerTools Logger过滤健康检查API日志

如何在AWS Lambda Powertools中过滤掉Uvicorn的/ping健康检查日志

我需要丢弃AWS CloudWatch日志中每20秒由Terraform健康检查触发的INFO: 127.0.0.1:51927 - "GET /ping HTTP/1.1" 200 OK日志行(该健康检查无法禁用)。尝试用logging的Filter类实现过滤,但aws_lambda_powertools.logging模块没有Filter属性,执行时报错。

尝试的代码

import os
from aws_lambda_powertools import Logger, logging

class EndpointFilter(logging.Filter):
    def filter(self, record: logging.LogRecord) -> bool:
        return record.getMessage().find("/ping") == -1

def get_aws_powertool_logger():
    date_format = "%Y-%m-%dT%H:%M:%S.%f%z"

    service = os.path.basename(os.getcwd())
    print("---- logger---- ", service)
    # logger: Logger = Logger(service=service, datefmt=date_format, level="DEBUG")
    logger = logging.getLogger("uvicorn.access").addFilter(EndpointFilter())

    return logger

报错信息

class EndpointFilter(logging.Filter):
AttributeError: module 'aws_lambda_powertools.logging' has no attribute 'Filter'

解决方案

问题核心是你导入的logging是AWS Lambda Powertools封装的模块,而非Python标准库的logging。Filter类属于标准库logging,需要调整导入逻辑,同时正确处理Uvicorn日志器和Lambda Powertools Logger的关系:

import os
import logging  # 导入Python标准库的logging模块
from aws_lambda_powertools import Logger

class EndpointFilter(logging.Filter):
    def filter(self, record: logging.LogRecord) -> bool:
        # 过滤掉包含/ping的日志记录
        return "/ping" not in record.getMessage()

def get_aws_powertool_logger():
    date_format = "%Y-%m-%dT%H:%M:%S.%f%z"
    service = os.path.basename(os.getcwd())
    
    # 初始化Lambda Powertools的Logger实例
    logger = Logger(service=service, datefmt=date_format, level="DEBUG")
    
    # 获取Uvicorn的access日志器并添加自定义过滤器
    uvicorn_access_logger = logging.getLogger("uvicorn.access")
    uvicorn_access_logger.addFilter(EndpointFilter())
    
    return logger

关键说明

  • 必须导入标准库的logging模块,Filter类和LogRecord类型都来自这里
  • 单独初始化Lambda Powertools Logger,同时针对uvicorn.access日志器添加过滤规则,不影响Powertools Logger的原有功能
  • 过滤逻辑用not in替代find,代码更直观易读

内容的提问来源于stack exchange,提问作者iamabhaykmr

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.22 10:04:57