私は、私たちのサービスの1つにLambda @ Edgeを追加しようとしています。目標は、特定の値のURLを正規表現し、承認を保証するためにそれらをヘッダー値と比較することです。値が存在する場合はそれが比較され、拒否された場合は403がユーザーにすぐに返されます。比較された値が一致するか、urlに特定の値が含まれていない場合、要求は許可された要求として継続されます。CloudFrontのLambda @ Edge認証を実装する
当初私はこれが「視聴者要求」イベントで発生すると考えていました。 SOに関する投稿やコメントの中には、「起点リクエスト」がこの小切手の理想的なものであることが示唆されています。しかし、今私は、CFエンドポイントのドキュメントの例題を試してみようとしていますが、期待した結果が見られません。コードは以下の通りです:
'use strict';
exports.handler = (event, context, callback) => {
const request = event.Records[0].cf.request;
request.headers["edge-test"] = [{
key: 'edge-test',
value: Date.now().toString()
}];
console.log(require('util').inspect(event, { depth: null }));
callback(null, request);
};
私はCloudWatchの内部に記録された値とのリクエストで新しいヘッダー値が存在すべきであることを期待する、まだ私はすべてのログが表示されませんも私は、ヘッダの値を見ています要求が入ってくる。
私は応答でなければならないと思うものについて、何かが実行されていないように見えるのか、予想されるアウトプットが間違っていることを理解していますか?私が紛失している可能性のある設定がありますか(トリガーの私の配布IDは、私たちが望むインスタンスに設定され、振る舞いは '*'に設定されています)?任意のヘルプは高く評価されています:)
私は以下の主な問題に取り組んだと思いますが、ラムダ関数を更新して新しいトリガーをプッシュすると、あなたのサイトは数秒間保護されなくなります。トリガのアップデートは、少なくともラムダがそれらを制御することを許していない限り、アトミックではないようです...それは削除+追加です。 –