事件对象缺少body
和isBase64Encoded
属性。但根据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": "********"
}
}
有没有人有类似的问题?
答案 0 :(得分:4)
在自定义授权者请求类型中,传递的事件中没有主体到授权者。根据文件:
对于REQUEST类型的自定义授权者,API Gateway将所需的请求参数作为事件对象的一部分传递给授权者Lambda函数。受影响的请求参数包括标头,路径参数,查询字符串参数,阶段变量和一些请求上下文变量。
没有身体在那里!
答案 1 :(得分:1)
https://aws.amazon.com/blogs/compute/using-enhanced-request-authorizers-in-amazon-api-gateway/
增强的请求授权者Lambda函数接收一个事件对象 这类似于代理集成。它包含所有 有关请求的信息(不包括正文)。