はじめに
Lambda関数を設定したCloudFrontに対してQuery Parameterを渡しても、Query Parameterが渡されたときにLambda関数が返す結果が返ってこないという状況に遭遇しました。原因はCloudFrontのBehaviorのQuery String Whitelistを設定してなかったせいでした。今回の記事ではそもそもQuery String Whitelistとは何だっけ?ってところをメモとして残しておきます。
Query String Whitelistとは
Query String Whitelistingの設定をすることで、特定のQuery Parameterをcache keyとして使用することができます。またこの設定をすることでOriginに対してQuery Parameterを転送することができます。
We are pleased to announce that you can now configure Amazon CloudFront to use only a specific set of HTTP query parameters to be used as the cache key, while still forwarding all the parameters to the origin through a feature called Query String Whitelisting.
引用:「Announcing Query String Whitelisting for Amazon CloudFront」
Query String Whitelistのメリット
Query String Whiitelistを使うと、cache keyとして利用するQuery Parameterを選択できるようになります。つまりsession ID
などはcache keyとして見なさないといったルールを作ることができるのでキャッシュのヒット率が上がり、Edge ServerがOriginからデータをロードする頻度が削減できるというメリットがあります。
cache keyとは
cache keyはCloudFrontのEdge ServerにキャッシュされるObjectに割り当てられるユニークな識別値のことです。
参考文献: