CloudFront Functions で特定の Cookie の値を HTTP ヘッダーに付け替えたい

CloudFront Functions で特定の Cookie の値を HTTP ヘッダーに付け替えるコード。備忘録。

function handler(event) {
  var request = event.request;

  if (request.cookies['foo'] && request.cookies['foo'].value) {
    request.headers['foo'] = {value: request.cookies['foo'].value};
  }

  return request;
}

ちなみに、request.headers のキーに大文字が含まれているとエラー。すべて小文字である必要がある。

The CloudFront function returned an invalid value: request.headers must have header names in lower case.

あと、「変更を保存」をしただけでは反映されないので「関数の発行」を忘れなく。

現場からは以上です。

(参考)

docs.aws.amazon.com