2016-05-16 78 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 
>