我似乎无法将API网关中的Cookie头映射到lambda的输入。我已经设置了以下身体映射模板:
{
"rawCookieString" : "$input.params().header.get('Cookie')"
}
并且它未能映射Cookie报头,使得字段为空。如果我将Cookie更改为任何其他标题,例如"测试",它可以正常工作!你知道为什么Cookie标头被忽略了吗?
我昨天遇到了同样的问题。我通过更改要发送到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
>