使用HTTP代理访问AWS API Gateway中的cloudfront-viewer-country标头?

时间:2017-09-16 19:23:46

标签: amazon-web-services aws-api-gateway

我正在使用AWS API Gateway及其HTTP代理。

我需要将CloudFront-Viewer-Country标头传递给我的端点。我尝试按照以下问题中概述的相同设置进行操作 angular-local-storage

我在端点服务器上收到以下标题。

Array
(
    [host] => example.com
    [Accept] => application/json
    [User-Agent] => AmazonAPIGateway_c8752844lh
    [x-amzn-apigateway-api-id] => c8752844lh
    [X-Amzn-Trace-Id] => Root=1-59bd7a5e-003ef07b3c4c3680299801f1
    [X-Forwarded-For] => xx.xxx.xx.xxx
    [X-Forwarded-Port] => 443
    [X-Forwarded-Proto] => https
    [Connection] => keep-alive

)

但是,CloudFront-Viewer-Country不在其中。如果我使用lambda函数而不是HTTP代理,我可以看到更多标题(包括CloudFront-Viewer-Country)。

有人可以告诉我如何使用HTTP代理访问我的端点上所需的标头吗?

2 个答案:

答案 0 :(得分:4)

对于您想要标题的资源和方法,请转到方法请求→HTTP请求标题→添加标题,并将名称设置为CloudFront-Viewer-Country。单击带圆圈的复选标记以添加。这会将标头暴露给执行流程的其余部分。

然后,在集成请求→HTTP标题→添加标题。

将名称设置为CloudFront-Viewer-Country并将{Map}设置为method.request.header.CloudFront-Viewer-Country,然后点击带圆圈的复选标记进行添加。这会获取公开的标头并将其添加到转发到后端的请求中。

部署API。

答案 1 :(得分:0)

我通过简单地创建一个名为Accept-Encoding的新集成标头来解决问题,其值等于'identity' 所有丢失的标题出现了!!