【问题标题】:Lambda event returns empty objectLambda 事件返回空对象
【发布时间】:2018-10-31 13:16:50
【问题描述】:

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

这是我的简单功能:

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

【问题讨论】:

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


    【解决方案1】:

    event 由您调用 lambda 时使用的负载设置。

    当您使用 API 网关时,该有效负载包含密钥 pathParameters,但当您使用 lambda 控制台进行测试时,您需要自己形成 JSON。控制台确实在其模板部分中包含 API 网关代理事件的示例。

    如需更完整的参考,请参阅:https://docs.aws.amazon.com/lambda/latest/dg/eventsources.html#eventsources-api-gateway-request

    【讨论】:

      【解决方案2】:

      如果从命令行调用您的 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
      

      注意 v2 中的新 --cli-binary-format raw-in-base64-out 选项。

      这在此处记录:https://docs.aws.amazon.com/cli/latest/userguide/cliv2-migration.html#cliv2-migration-binaryparam

      【讨论】:

        猜你喜欢
        • 2018-08-05
        • 1970-01-01
        • 2019-09-15
        • 2021-05-01
        • 2014-09-29
        • 2015-02-11
        • 2020-12-21
        • 2019-04-08
        • 2012-02-22
        相关资源
        最近更新 更多