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

如何使用boto3客户端调用Lambda函数并传递参数

实现方法

直接通过boto3 Lambda客户端调用目标函数即可,完全不需要走API网关链路,根据你是否愿意修改原有被调Lambda的代码,选对应方案即可:

方案1:零修改兼容原有API GET触发的Lambda

你现有的函数是API Gateway GET触发、路径参数格式为/<parameter>,本质上API网关只是给Lambda传了个固定结构的event对象,路径参数存在event的pathParameters字段下。你直接用boto3调用时,构造完全一致的event结构传入即可,原有业务代码一行都不用改。
示例代码:

import boto3
import json

lambda_client = boto3.client('lambda')
# 替换成你实际要传的参数值
target_param = "your_actual_parameter_value"

invoke_resp = lambda_client.invoke(
    FunctionName='YOUR_TARGET_LAMBDA_NAME_OR_ARN',
    # 同步调用拿返回结果用RequestResponse,异步触发不需要等返回就用Event
    InvocationType='RequestResponse',
    Payload=json.dumps({
        "httpMethod": "GET",
        "pathParameters": {
            # 这里的key必须和你之前API网关配置的路径参数名完全一致
            # 比如原路径配置是/{id}就写"id": target_param
            "parameter": target_param
        },
        # 原有代码如果没用到查询参数、请求头,这两个字段留空即可
        "queryStringParameters": {},
        "headers": {}
    })
)

# 解析被调函数的返回结果
result = json.loads(invoke_resp['Payload'].read())

注意两个前置配置:

  • 发起调用的Lambda执行角色,必须绑定目标Lambda的lambda:InvokeFunction权限,否则会报权限拒绝错误
  • pathParameters里的参数key必须和原API网关的路径占位符名完全匹配,否则原有代码读不到参数

方案2:改造被调Lambda兼容双触发模式(长期维护更推荐)

如果后续不想一直依赖API网关的event结构,可以稍微调整下被调Lambda的参数读取逻辑,同时兼容API网关触发、boto3直接调用两种场景:

import json

def lambda_handler(event, context):
    # 优先读boto3直接传入的顶层参数,读不到再从API网关的路径参数结构里取
    param = event.get("parameter")
    if not param:
        param = event.get("pathParameters", {}).get("parameter")
    
    # 保留你原有的业务逻辑即可
    return {
        "statusCode": 200,
        "body": json.dumps({"received_param": param})
    }

改造后调用方不需要构造复杂的API网关event,直接传顶层参数即可:

invoke_resp = lambda_client.invoke(
    FunctionName='YOUR_TARGET_LAMBDA_NAME_OR_ARN',
    InvocationType='RequestResponse',
    Payload=json.dumps({
        "parameter": "your_actual_parameter_value"
    })
)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.29 22:06:12