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

如何通过boto3根据Lambda函数名获取关联的CloudWatch日志组?

如何通过Lambda函数名查找对应的CloudWatch日志组?

方法一:利用默认日志组命名规则

AWS Lambda默认会为每个函数创建格式固定的日志组:/aws/lambda/[Lambda函数名]。如果你的函数没有自定义日志组配置,直接拼接这个格式就能得到对应的日志组名称,无需调用任何API。

示例代码:

def get_default_log_group(function_name):
    return f"/aws/lambda/{function_name}"

方法二:通过Lambda API获取配置(支持自定义日志组)

如果函数配置了自定义日志组,就需要通过Lambda的get_function_configuration接口获取日志组信息——这个接口会返回函数的完整配置,包括LoggingConfig字段,里面明确记录了对应的日志组名称。

注意:你之前使用的get_function接口虽然包含部分配置,但get_function_configuration专门用于获取函数配置信息,内容更全面准确。

示例代码:

import boto3

lambda_client = boto3.client('lambda')

def get_lambda_log_group(function_name):
    config_response = lambda_client.get_function_configuration(FunctionName=function_name)
    return config_response['LoggingConfig']['LogGroup']

补充:CloudWatch API的辅助过滤方式

如果需要通过CloudWatch API批量筛选,可以使用describe_log_groups并指定logGroupNamePrefix参数,比如前缀设为/aws/lambda/,再根据函数名匹配结果中的日志组名称。但这种方法仅适用于默认命名的日志组,自定义日志组无法通过前缀匹配,因此优先推荐前两种方法。

示例代码(仅默认日志组适用):

import boto3

cloudwatch_client = boto3.client('logs')

def find_log_group_by_function(function_name):
    prefix = f"/aws/lambda/{function_name}"
    response = cloudwatch_client.describe_log_groups(logGroupNamePrefix=prefix)
    for log_group in response['logGroups']:
        if log_group['logGroupName'] == prefix:
            return log_group['logGroupName']
    return None

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.22 17:02:19