はじめに
API GatewayではCookieをはじめHTTPヘッダーをLambdaのパラメータなどに設定できます。ただ、具体的にどうすればよいかのサンプルが見当たらなかったので備忘録としてまとめておきます。
Method Request
まず、Method RequestのHTTP Request Headersに取得したHTTPヘッダーの項目名を設定します。ここれは、Cookieをサンプルにしているので、Cookieを設定します。
Integration Request
続けてIntegration RequestのMapping TemplateにMethod Requestで設定した値を設定します。ここで留意するのはCookieはURLエンコードされているので、まず$util.urlDecode
でデコードしておくと便利という点です。また、Cookieの値にJSONが設定されている場合には、さらに$util.escapeJavaScript
でエスケープする必要があります。これは、API Gatewayで扱えるのはCookieというHTTPヘッダーの値までですので、JSONを含んだCookieの場合には`aaa={"bbb":"cccc"};bbb={ddd:eee}"という値をLambda等に渡す必要があるため、文字列としてエスケープしておかないとエラーとなってしまいます。