lambda @ edge + cloudfrontを使用して、画像のサイズ変更などを行っています。私の原点はS3バケットです。
問題:ブラウザ経由でcloudfrontを介してs3内のオブジェクトを呼び出そうとすると、上記のエラーが発生します(画像)。テスト関数(下記)だけを使用した場合でも発生します。
呼び出し/クエリの方法:s3がオリジンとして設定されているため、cloudfrontドメイン名d5hbjkkm17mxgop.cloudfront.netを使用して、s3パス/my_folder/myimage.jpgを追加します。
使用したブラウザのURL:d5hbjkkm17mxgop.cloudfront.net/my_folder/myimage.jpg
exports.handler = (event, context, callback) => {
var request = event.Records[0].cf.request;
console.log(event);
console.log("\n\n\n");
console.log(request);
callback(null, request);
};
リクエストはオブジェクトであると確信しています。なぜこれが発生するのかわかりません。awsコンソールでのテストがすべて機能する場合(つまり、クラウドフロント/ラムダインターフェイスエラーである必要があります)、ラムダは呼び出されません(新しいログエントリは生成されません)。
また、cloudfrontからのアクセスエラーがあります:
2018-01-08 12:40:20 CDG50 855 62.65.189.38 GET d3h4fd56s4fs65d4f6somxgyh.cloudfront.net /nv1_andrej_fake_space/98f741e0b87877c607a6ad0d2b8af7f3ba2f949d7788b07a9e89453043369196 502 - Mozilla/5.0%2520(X11;%2520Ubuntu;%2520Linux%2520x86_64;%2520rv:57.0)%2520Gecko/20100101%2520Firefox/57.0 - - LambdaValidationError usnOquwt7A0R7JkFD3H6biZp21dqnWwC5szU6tHxKxcHv5ZAU_g6cg== d3hb8km1omxgyh.cloudfront.net https 260 0.346 - TLSv1.2 ECDHE-RSA-AES128-GCM-SHA256 LambdaValidationError HTTP/2.0
何か案は?
編集:セミコロン
Lambdaの新しいバージョンを公開することを忘れないでください。保存するだけでは不十分です。最後に公開されたLambdaが実際にデプロイされたものですが、awsコンソールウィンドウに異なるコードがある場合があります。
編集:もう1つの落とし穴-CloudFront設定で機能バージョンを変更することを忘れないでください。Lambdaにバインドされている目的のCFディストリビューションを選択する必要があります。そのCFディストリビューションを選択してから、ビヘイビアーに移動し、ビヘイビアーの編集を選択します。下にスクロールすると、最後のエントリはLambda Function Associationsです(下の写真を参照)
ラムダ関数ARNの最後の番号は、デプロイされたラムダのバージョン番号です。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加