AWS Lambda Authorizer`event`对象

时间:2017-11-16 16:45:57

标签: aws-lambda

事件对象缺少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": "********"
    }
}

有没有人有类似的问题?

2 个答案:

答案 0 :(得分:4)

在自定义授权者请求类型中,传递的事件中没有主体到授权者。根据文件:

  

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

没有身体在那里!

答案 1 :(得分:1)

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

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