2016-05-16 102 views
0

我似乎無法將API網關中的Cookie標頭映射到我的lambda的輸入。我已經設置了以下身體映射模板:API網關無法訪問Cookie標頭

{ 
    "rawCookieString" : "$input.params().header.get('Cookie')" 
} 

並且它無法映射Cookie標題而使字段留空。如果我將Cookie更改爲任何其他標題,例如「測試」,它工作正常!任何想法爲什麼Cookie頭似乎被忽略?

+0

您能否澄清。這是來自測試從控制檯還是從部署的API調用功能? –

+0

@BobKinney從API網關儀表板可以正常運行測試,但部署時它不會挑選標題 – Sutty1000

+0

我無法重現您的錯誤,我可以使Cookie正常工作。你可以發佈你如何測試這個?另外,如果您在[AWS論壇]上發佈(https://forums.aws.amazon.com/forum.jspa?forumID=199&start=0),我們可以查找您的API配置,並可能提供額外的調試,以便您可能會遇到問題。 –

回答

0

昨天我遇到了同樣的問題。我通過更改要發送給lambda的cookie值來解決此問題。

原因可能是你的格式Cookie不正確。

如果您發送的cookie這樣的:

curl -v --cookie "CXLZOYXA" https://XXXXXX.execute-api.ap-southeast-2.amazonaws.com/beta/pets 

該cookie不會添加到請求標題的標頭(在AWS API網關,就可以得到該cookie)。

> GET /beta/pets HTTP/1.1 
> Host: p6useiue14.execute-api.ap-southeast-2.amazonaws.com 
> User-Agent: curl/7.43.0 
> Accept: */* 
> 

如果您發送的cookie這樣的:

curl -v --cookie "name=CXLZOYXA" https://XXXXX.execute-api.ap-southeast-2.amazonaws.com/beta/pets 

cookie將被添加到請求頭的頭。

> GET /beta/pets HTTP/1.1 
> Host: p6useiue14.execute-api.ap-southeast-2.amazonaws.com 
> User-Agent: curl/7.43.0 
> Accept: */* 
> Cookie: name=CXLZOYXA 
>