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

能否通过API列出单个Lambda应用下的所有Lambda函数?

检索指定Lambda应用下所有函数的实现方法

Lambda.Client.list_functions 确实没有直接提供按应用名过滤的入参,但可以通过官方API实现指定应用下Lambda函数的检索,有两种稳定可用的方案:

  • 方案1:基于Lambda系统标签过滤
    所有在Lambda控制台创建的应用、通过SAM/Serverless Application Repository/CloudFormation部署的Lambda应用,其下的所有函数都会被自动注入固定格式的系统标签:
    • 标签键lambda:application的值直接对应当前函数所属的Lambda应用名
    • 标签键aws:cloudformation:stack-name的值对应该应用关联的CloudFormation栈名
      你可以直接在调用list_functions时传入标签过滤条件,不需要拉取全量函数本地过滤,示例代码:
    import boto3
    lambda_client = boto3.client('lambda')
    target_app_name = "替换为你的目标应用名"
    
    paginator = lambda_client.get_paginator('list_functions')
    app_functions = []
    for page in paginator.paginate(
        FunctionVersion='ALL',
        Filters={
            'Key': 'lambda:application',
            'Values': [target_app_name]
        }
    ):
        app_functions.extend(page['Functions'])
    
    如果你的boto3版本低于1.26.0,Filters参数不可用,可以遍历分页返回的函数列表,判断函数Tags字段中lambda:application对应的值是否匹配目标应用名即可。
  • 方案2:通过Resource Groups API查询
    Lambda控制台的应用视图底层就是对接AWS Resource Groups服务实现的资源聚合,每个Lambda应用对应一个专属资源组,直接查询该资源组下的Lambda类型资源,返回结果和控制台展示完全一致:
    1. 调用list_groups接口找到目标应用对应的资源组ARN
    2. 调用list_group_resources接口,传入资源组ARN,同时指定资源类型筛选为AWS::Lambda::Function,返回结果就是该应用下的所有Lambda函数

注意:不建议直接拉取全区域所有Lambda函数再本地匹配,账号下函数数量较多时很容易触发API限流,优先使用服务端过滤参数或者Resource Groups查询能力,查询效率更高。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.27 21:39:04