【问题标题】:`body` parameter is absent in AWS Lambda Authorizer `event` objectAWS Lambda Authorizer `event` 对象中没有`body` 参数
【发布时间】:2017-11-16 16:45:56
【问题描述】:

事件对象缺少bodyisBase64Encoded 属性。但是根据docs,它们应该在那里。完整的结构如下:

{
    "type": "REQUEST",
    "methodArn": "arn:aws:execute-api:us-west-2:*******:*******/development/POST/auth/login",
    "resource": "/{proxy+}",
    "path": "/auth/login",
    "httpMethod": "ANY",
    "headers": {
       .....
    },
    "queryStringParameters": {
        "test": "123"
    },
    "pathParameters": {
        "proxy": "auth/login"
    },
    "stageVariables": {
        "lambdaVersion": "development"
    },
    "requestContext": {
        "path": "/development/auth/login",
        "accountId": "*****",
        "resourceId": "f8wvnk",
        "stage": "development",
        "requestId": "****",
        "identity": {
            ....
        },
        "resourcePath": "/{proxy+}",
        "httpMethod": "POST",
        "apiId": "********"
    }
}

有人有类似的问题吗?

【问题讨论】:

    标签: aws-lambda


    【解决方案1】:

    在自定义授权方请求类型中,传递给授权方的事件中没有正文。根据文档:

    对于 REQUEST 类型的自定义授权方,API Gateway 将所需的请求参数作为事件对象的一部分传递给授权方 Lambda 函数。受影响的请求参数包括标头、路径参数、查询字符串参数、阶段变量和一些请求上下文变量。

    没有身体!

    【讨论】:

    • 你是对的。我检查了错误的文档(用于 Lambda 代理集成)。这里是correct ones,没有bodyisBase64Encoded 参数。所以没有任何方法可以在Authorzer Lambda 中获取请求正文,对吗?
    【解决方案2】:

    https://aws.amazon.com/blogs/compute/using-enhanced-request-authorizers-in-amazon-api-gateway/

    增强型请求授权器 Lambda 函数接收事件对象 这类似于代理集成。它包含所有的 有关请求的信息,不包括正文。

    【讨论】:

      【解决方案3】:

      增强型请求授权器 Lambda 函数接收类似于代理集成的事件对象。它包含有关请求的所有信息,不包括正文。

      【讨论】:

      • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
      猜你喜欢
      • 2022-12-28
      • 1970-01-01
      • 2020-03-17
      • 1970-01-01
      • 1970-01-01
      • 2021-02-02
      • 2020-08-08
      • 2021-01-07
      • 2020-05-15
      相关资源
      最近更新 更多