如何在自定义授权程序AWS lambda函数中访问http标头

sum*_*n j 9 amazon-web-services aws-lambda aws-api-gateway

从API Gateway,我使用python中的Lambda函数为我的API 创建了一个自定义授权器.API Gateway使用I configure(method.request.header.Authorization)标头移交传入的身份验证令牌.但是我还需要lambda函数中原始http请求的其他头文件.我如何访问它们?我没有看到event对象输入到我的lambda函数的标题.

请注意,这与使用Lambda访问AWS API Gateway的请求如何访问HTTP标头不重复.问题是关于自定义授权者lambda函数.我没有看到任何配置选项将传入的http标头传递给授权者lambda函数.

根据AWS Documentation,API Gateway使用以下输入调用Custom Authorizer.基于以下内容,我认为我的要求是不可能的.但是想检查是否有解决方法.


{
    "type":"TOKEN",
    "authorizationToken":"",
    "methodArn":"arn:aws:execute-api:<regionId>:<accountId>:<apiId>/<stage>/<method>/<resourcePath>"
}  

小智 5

现在可以通过使用“请求”类型的授权人而不是令牌来实现

完整详细信息在这里:https : //docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-use-lambda-authorizer.html

从根本上讲,所有标头都在事件对象中传递以进行请求授权

即事件的标头对象


    "headers": {
        "X-wibble": "111",
        "X-wobble": "222",
        "x-amzn-ssl-client-hello": "*Deleted*",
        "Via": "1.1 .cloudfront.net (CloudFront)",
        "CloudFront-Is-Desktop-Viewer": "true",
        "CloudFront-Is-SmartTV-Viewer": "false",
        "CloudFront-Forwarded-Proto": "https",
        "X-Forwarded-For": "*Deleted*",
        "CloudFront-Viewer-Country": "GB",
        "Accept": "*/*",
        "User-Agent": "curl/7.55.1",
        "X-Amzn-Trace-Id": "Root=*Deleted*",
        "Host": "*Deleted*.execute-api.eu-west-1.amazonaws.com",
        "X-Forwarded-Proto": "https",
        "X-Amz-Cf-Id": "*Deleted*",
        "CloudFront-Is-Tablet-Viewer": "false",
        "X-Forwarded-Port": "443",
        "CloudFront-Is-Mobile-Viewer": "false"
    }

Run Code Online (Sandbox Code Playgroud)