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

如何用AWS CLI查询Lambda最近调用时间,识别未使用函数?

获取Lambda函数最近调用时间的可行方法

要区分在用和停用的Lambda函数,确实可以通过几种方式获取最近调用时间,以下是实用的CLI操作方案:

1. 利用CloudWatch Metrics(最可靠)

Lambda默认会生成Invocations指标(除非手动禁用了指标收集),可以通过CloudWatch CLI查询每个函数的最近调用记录:

aws cloudwatch get-metric-statistics \
    --namespace AWS/Lambda \
    --metric-name Invocations \
    --dimensions Name=FunctionName,Value=<函数名> \
    --start-time $(date -d "30 days ago" +%Y-%m-%dT%H:%M:%SZ) \
    --end-time $(date +%Y-%m-%dT%H:%M:%SZ) \
    --period 86400 \
    --statistics Sum \
    --query 'Datapoints[?Sum>0] | sort_by(@, &Timestamp) | [-1].Timestamp'
  • 替换<函数名>为目标Lambda函数名,或改用Name=FunctionArn,Value=<函数ARN>按ARN查询
  • 调整start-time的时间范围(比如改成90天)覆盖更长周期
  • 如果返回时间戳,说明该时间段内有调用;无返回则可能未被调用

2. 查询CloudWatch日志流的最后事件时间

若函数开启了日志(默认会发送到CloudWatch Logs),可以通过日志流的最后事件时间判断:

aws logs describe-log-streams \
    --log-group-name /aws/lambda/<函数名> \
    --order-by LastEventTime \
    --descending \
    --max-items 1 \
    --query 'logStreams[0].lastEventTimestamp'
  • 将返回的时间戳转换为可读时间(比如用date -d @<时间戳>/1000)
  • 若日志组不存在或无日志流,说明函数从未被调用或日志被禁用

3. 辅助判断:Lambda最后修改时间

如果上述两种方法都无数据,可以用函数的最后修改时间作为参考(注意:修改≠调用,仅作辅助):

aws lambda list-functions \
    --query 'Functions[?FunctionName==`<函数名>`].LastModified'

注意:如果函数完全没有配置CloudWatch指标和日志,且从未被调用过,确实无法直接获取调用时间,这种情况下可以结合函数的创建时间、关联的触发器状态(比如API Gateway、EventBridge规则是否启用)来综合判断是否为停用函数。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 22:15:41