AWS Lambda@Edge
CloudFront 経由で S3 の静的コンテンツを公開するが、Basic認証を入れたい。そんなときには Lambda@Edge を利用すると良さそう。
基本情報
典型的な使い方はこちらを参考にやりました: https://qiita.com/takahashi-kazuki/items/688f5f736bd76682483c
Lambda@Edge 関数の注意点:
- Edge関数を作成できるリージョンは us-east-1 region (バージニア北部) のみ
- ラインタイムは Node.js 6.10 および Node.js 8.10 に制限される
- 環境変数、デッドレターキュー (DLQ)、および Amazon VPC は使用できない
反映の仕方
- Lambda のこんそーるから バージョンを
$LATEST
を選んだ状態で、アクションでLambda@Edge へのデプロイ
を選択 - CloudFrontトリガーの設定 : 最初のデプロイのときは
新しい CloudFront トリガーの設定
, 初回でない場合はこの関数で既存の CloudFront トリガーを使用
を指定 - (以下、新規デプロイの場合)
- ディストリビューション: 適切に選択
- キャッシュ動作:
*
のまま - CloudFrontイベント:
ビューアーリクエスト
を選択 (ベーシック認証はクライアントがリクエストヘッダに入れてくるから) - ボディを含める: 不要
- Lambda@Edge へのデプロイを確認: チェックを入れる
- 最後に
デプロイ
ボタンを実行 - イメージは以下
- Lambda のこんそーるから バージョンを