【问题标题】:Accessing cloudfront-viewer-country header in AWS API Gateway using HTTP Proxy?使用 HTTP 代理访问 AWS API Gateway 中的 cloudfront-viewer-country 标头?
【发布时间】:2017-09-16 19:23:45
【问题描述】:

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

我需要将 CloudFront-Viewer-Country 标头传递给我的端点。我尝试按照以下问题中概述的相同设置 Access headers in AWS API Gateway using HTTP Proxy?

我在端点服务器上获得了以下标头。

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 代理访问我的端点上所需的标头?

【问题讨论】:

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


    【解决方案1】:

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

    然后,在 Integration Request → HTTP Headers → Add Header。

    将名称设置为CloudFront-Viewer-Country 并设置映射自method.request.header.CloudFront-Viewer-Country,然后单击带圆圈的复选标记进行添加。这会提取暴露的标头并将其添加到转发到后端的请求中。

    部署 API。

    【讨论】:

      【解决方案2】:

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

      【讨论】:

        猜你喜欢
        • 2016-05-03
        • 2015-10-01
        • 2016-12-07
        • 1970-01-01
        • 2022-09-30
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多