我需要访问event["pathParameters"]
,但是该事件返回一个空对象。我使用AWS Cloud9 IDE创建了该函数。
这是我的简单功能:
def handler(event, context):
return {
'statusCode': 200,
'body': json.dumps(event),
'headers': {
'Content-Type': 'application/json'
}
}
答案 0 :(得分:2)
event
由调用lambda的有效负载设置。
使用API网关时,该有效负载包含键pathParameters
,但是当您使用lambda控制台进行测试时,则需要您自己形成JSON。该控制台的模板部分确实包含API网关代理事件的示例。
有关更完整的参考,请参见:https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-api-gateway-request
答案 1 :(得分:0)
如果从命令行调用Lambda函数,则event
为空的另一个原因可能是AWS CLI的v1和v2之间的更改。比较:
在AWS CLI v1中可以执行的操作:
invoke
aws lambda invoke \
--function-name LambdaPhono \
--invocation-type Event \
--payload file://inputFile.txt \
outputfile.txt
在AWS CLI v2中,您需要执行以下操作:
invoke
aws lambda invoke \
--function-name LambdaPhono \
--cli-binary-format raw-in-base64-out \
--invocation-type Event \
--payload file://inputFile.txt \
outputfile.txt
在第2版中注意新的 --cli-binary-format raw-in-base64-out
选项。
在此处记录:https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html#cliv2-migration-binaryparam