APIゲートウェイでいくつかの基本ルーティングを変更しようとしています。 私は次のシナリオを実現する必要があります。APIゲートウェイをuri(リクエストパス+変数クエリパラメータ)パススルーでhttpプロキシとして使用
ユーザーは、要求がAPI1 /a/b/../nをxxxx-execute-api.eu-west-1.amazonaws.com/prod/のでしょうか? PARAM1 = VAL1 & parma2 = val2の... & paramNの= VALN要求はAPI1に行くべき .back.end/A/B /../ N?のparam1 = val1と& parma2 = val2の... & paramNの=のVirtual Local Area Network
ユーザーが作成するxxxx-execute-api.eu-west-1.amazonaws.com/prod/ api2 /a/b/../n?param1=val1 & parma2 = val2 ... & paramn = valnリクエストはに行きます。api2 .back.end/a/b /../ n?param1 = val1 & parma2 = val2 ... & paramn = valn
ユーザーが作成したものです。xxxx-execute-api.eu-west-1.amazonaws.com/prod/*****/a/b/../n ?のparam1 = val1と& parma2 = val2の... & paramNの= VALN要求はAPI3に行くべき .back.end/A/B /../ N?のparam1 = val1と& parma2 = val2の... & paramNの= VALN
ルーティングは、ステージの後の最初のパスインデックスに基づいて行われる必要があり、それ以降のすべてはhttpバックエンド(透過プロキシなど)に渡されます。すなわち
、経路インデックス1はAPI1、経路インデックス1後に完全なURIを持つAPI1 .back.endに転送要求である場合、パスインデックス1がapi2の場合は、パスインデックス1のあと完全なURIを持つapi2 .back.endに転送リクエストします。パスインデックス1がならば、明示的な値api1またはapi2よりも、転送要求がapi3 .back.endになり、パスインデックス1の後に完全なURIが付きます。
これを実現するには、余分なレイヤー(ラムダ、クラウドフロント、EC2など)を追加しないでください。
ありがとうございました!
理想的ではありませんが、ラムダでこのルーティング/リダイレクトを実行できますか?おそらくリダイレクトを返すか、ターゲットサーバにコールをプロキシするかのいずれかでしょうか? – ericpeters0n
@ ericpeters0n APIゲートウェイは、依然として変数または "greedy"リソースパスをサポートする必要があります。現在、APIゲートウェイ定義内のすべてのリソース/メソッドを定義し、これを統合(例:ラムダ)にマッピングする必要があります。 –