AWS Lambda Authorizer `event` 对象中缺少 `body` 参数

MEG*_*l23 8 aws-lambda

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

{
    "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": "********"
    }
}
Run Code Online (Sandbox Code Playgroud)

有没有人有类似的问题?

小智 10

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

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

没有身体!

  • 你是对的。我检查了错误的文档(用于 Lambda 代理集成)。这里是 [正确的](http://docs.aws.amazon.com/apigateway/latest/developerguide/use-custom-authorizer.html),那里没有 `body` 和 `isBase64Encoded` 参数。所以没有任何方法可以在 Authrozer Lambda 中获取请求正文,对吗? (3认同)