我正在使用AWS API网关及其HTTP代理。
我需要将CloudFront-Viewer-Country
标头传递到我的端点。我尝试按照以下问题概述的同一设置使用http代理中的AWS API网关中的访问标题?
我在端点服务器上获取以下标题。
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代理在我的端点上访问所需的标头?
对于想要标头的资源和方法,转到方法请求→HTTP请求标头→添加标头并将名称设置为CloudFront-Viewer-Country
。单击循环的检查标记以添加。这将标题暴露于执行流的其余部分。
然后,在集成请求→HTTP标头→添加标头。
将名称设置为CloudFront-Viewer-Country
并设置从method.request.header.CloudFront-Viewer-Country
映射,然后单击循环的复选标记以添加。这将拾取裸露的标头,并将其添加到转发到您的后端的请求中。
部署API。
我通过简单地创建一个名为 Accept-Encoding
的新集成标头,其值等于 'identity'
所有缺失的标题都出现了!