7

この URL の S3 バケットから Web アプリのフロント エンドを提供したいと考えていますwww.acme.com

同時に、この URL で API ゲートウェイ ステージ (ラムダ関数が背後で実行されている) からバックエンドを提供したいと考えています: www.acme.com/api(api.acme.com壊れた Same Origin ポリシーに対処する必要がないように、URL は使用しません)。

この時点で、S3 バケットまたは API Gateway ステージを提供するように Cloudfront をセットアップできましたが、一緒にセットアップすることはできませんでした。

リソース (最初にバケット、次に API ゲートウェイ) と動作中の 2 つのパス (バケットへのデフォルト パスとゲートウェイへの 2 番目の /api) の両方を宣言しようとしました。バケットは適切に提供されますが、GETは次のようwww.acme.com/api/usersになります。

{"message":"Missing Authentication Token"}

この問題を解決する方法についての手がかりをありがとう。

4

1 に答える 1

6

私のせい: Origin に Origin Path を設定し/api、Path Pattern をapi/*Behavior に設定しました。理由はわかりませんがapi/*、Behavior の設定で URL パスの「api/」がカットされると仮定しました。実際、この設定では、CF は/api/api/...API GW 内の存在しない URL ( ) にルーティングされていました。

それが私が得た理由です:{"message":"Missing Authentication Token"}

結論: ゲートウェイで複数のステージを使用する場合、ステージは URL のパスのベースになるため、Origin Path を空白のままにしないでください。

于 2015-09-26T19:48:19.483 に答える