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

Python调用AWS Lambda动态传参失败问题求助

Python调用AWS Lambda动态变量异常问题

原始场景

硬编码函数名和参数时,代码可正常执行:

params = {"value1": "value1-value", "value2": "value2-value", "value3": "value3-value"}
client = boto3.client('lambda')
response = client.invoke(
    FunctionName='MyLambdaFunctionName',
    InvocationType='RequestResponse',
    Payload=json.dumps(params).encode(),
)
pprint.pp(response['Payload'].read())

改为从环境变量获取Lambda函数名、动态构造参数后执行失败,测试代码:

lambdaName = os.getenv('TF_VAR_lambdaName')
value1="value1-value"
value2="value2-value"
value3="value3-value"

data = {"value1": "value1-value", "value2": "value2-value", "value3": "value3-value"}

params = json.dumps(data)
client = boto3.client('lambda')
response = client.invoke(
    FunctionName=lambdaName,
    InvocationType='RequestResponse',
    Payload=json.dumps(params).encode(),
)
pprint.pp(response['Payload'].read())

首次错误信息

执行后抛出参数验证错误:

Traceback (most recent call last):   File
"/Users/go/src/github.com/repo/./cleanup/cleanup.py", line 25, in
<module>
    response = client.invoke(   File "/Users/Library/Python/3.9/lib/python/site-packages/botocore/client.py",
line 515, in _api_call
    return self._make_api_call(operation_name, kwargs)   File "/Users/Library/Python/3.9/lib/python/site-packages/botocore/client.py",
line 893, in _make_api_call
    request_dict = self._convert_to_request_dict(   File "/Users/Library/Python/3.9/lib/python/site-packages/botocore/client.py",
line 964, in _convert_to_request_dict
    request_dict = self._serializer.serialize_to_request(   File "/Users/Library/Python/3.9/lib/python/site-packages/botocore/validate.py",
line 381, in serialize_to_request
    raise ParamValidationError(report=report.generate_report()) botocore.exceptions.ParamValidationError: Parameter validation failed:
Invalid type for parameter FunctionName, value: None, type: <class
'NoneType'>, valid types: <class 'str'>

更新后的问题

修改参数传递方式,直接使用JSON序列化结果尝试解决问题,却出现新的Lambda执行错误:

{
  "errorType": "ValidationMetadataException",
  "errorMessage": "The argument is null or empty. Provide an argument that is not null or empty, and then try the command again.",
  "stackTrace": [
    "at Amazon.Lambda.PowerShellHost.PowerShellFunctionHost.ExecuteFunction(Stream inputStream, ILambdaContext context)",
    "at lambda_method1(Closure , Stream , ILambdaContext , Stream )",
    "at Amazon.Lambda.RuntimeSupport.Bootstrap.UserCodeLoader.Invoke(Stream lambdaData, ILambdaContext lambdaContext, Stream outputStream) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/UserCodeLoader.cs:line 145",
    "at Amazon.Lambda.RuntimeSupport.HandlerWrapper.<>c__DisplayClass8_0.<GetHandlerWrapper>b__0(InvocationRequest invocation) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/HandlerWrapper.cs:line 56",
    "at Amazon.Lambda.RuntimeSupport.LambdaBootstrap.InvokeOnceAsync(CancellationToken cancellationToken) in /src/Repo/Libraries/src/Amazon.Lambda.RuntimeSupport/Bootstrap/LambdaBootstrap.cs:line 176"
  ]
}

目前Lambda函数名传入的问题仍未解决,代码已更新。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 02:25:29