2017-09-16 68 views
0

我正在使用AWS API網關及其HTTP代理。使用HTTP代理在AWS API網關中訪問cloudfront-viewer-country標頭?

我需要將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代理訪問我的端點上所需的標題?

回答

1

對於需要標題的資源和方法,請轉到方法請求→HTTP請求標題→添加標題並將名稱設置爲CloudFront-Viewer-Country。點擊帶圓圈的複選標記以添加。這將頭部暴露給執行流程的其餘部分。

然後,在Integration Request→HTTP Headers→Add Header中。

將名稱設置爲CloudFront-Viewer-Country並從method.request.header.CloudFront-Viewer-Country設置映射並單擊帶圓圈的複選標記以添加。這會提取暴露的標題並將其添加到轉發到您後端的請求中。

部署API。

0

我解決了這個問題,只需創建一個名爲Accept-Encoding的新集成頭文件,其值等於'identity' 所有缺失的頭文件都出現了!

相關問題