Lambda事件返回空对象

时间:2018-10-31 13:16:51

标签: python amazon-web-services aws-lambda cloud9-ide

我需要访问event["pathParameters"],但是该事件返回一个空对象。我使用AWS Cloud9 IDE创建了该函数。

这是我的简单功能:

def handler(event, context):
    return {
        'statusCode': 200,
        'body': json.dumps(event),
        'headers': {
            'Content-Type': 'application/json'
        }
    }

2 个答案:

答案 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