問題タブ [aws-lambda-edge]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
1917 参照

amazon-web-services - AWS Lambda@edge でオリジン レスポンスに Cookie を設定する

私の目的は aws s3 バケット リンクを保護することであり、s3 バケットにアクセスできるリンクとしてクラウドフロントを使用してこれを解決しようとしています。したがって、ユーザーがクラウドフロント リンクにアクセスしようとすると、基本認証が存在する場合ブラウザに Cookie はありませんが、Cookie がある場合は、この Cookie の認証値がチェックされ、ユーザーにアクセスが許可されます。PS: これは Web サイトではありません。私の目的は s3 バケット リンクを保護することです。

ビューアーのリクエストで lambda@edge を使用した私の試みは次のとおりです。ユーザーがログインしていない場合は認証ページが表示されます。それ以外の場合は、アクセスが許可されます。動作しますが、Cookie を設定できません。ヘッダー ファイルの set-cookies を削除します。CloudFront は、オリジンに転送するリクエストから Cookie ヘッダーを削除し、ビューアに返すレスポンスから Set-Cookie ヘッダーを削除します。

これが私のコードです:

あなたの提案は大歓迎です。前もって感謝します。

0 投票する
1 に答える
1173 参照

amazon-s3 - Lambda@edge リダイレクトがリダイレクト ループに入る

aws s3 に静的なウェブサイトがあります。ルート 53 とクラウド フロントをセットアップすると、すべてがスムーズに機能します。s3 バケットは、index.html をインデックス ドキュメントとして提供するように設定されています。

ここで、index-en.html という別のファイルを追加しました。これは、リクエストの国が私の母国ではなく他の国である場合に提供される必要があります。

このために、次のコードで lambda@edge 関数を追加しました。

また、クラウド フロントの動作を編集して、Origin ヘッダーと Viewer-country ヘッダーをホワイトリストに登録し、cloudfront Viewer-Request イベントとラムダ関数 ARN の関係をセットアップしました。

しかし、「リダイレクト エラーが多すぎます」というメッセージが表示されます。

2 つの質問があります。

  1. 「リダイレクトエラーが多すぎます」を修正するには?
  2. 「TR」以外の視聴者の場合、デフォルトのランディング ページは index-en.html である必要があります。そこから、ナビゲーション メニューからさらに 2 つの英語ページにアクセスできます。そのため、ユーザーがページ ナビゲーションから特定のページをリクエストした場合は、それらのページにアクセスできる必要があります。ページがリクエストされていない場合は、デフォルトのランディング ページが提供される必要があります。

助けに感謝します。ありがとう。