2016-12-13 14 views
0

私は残りのAPIアプリケーションにhttpプロキシとしてAWS API Gatewayを使用しています。 問題は、クライアントのIPアドレスを取得する方法や、APIのゲートウェイからアプリケーションに渡す方法が見つからないようです。 私が見た唯一の方法は、ラムダ関数を使うことでしたが、http統合が必要なので使用できません。AWS Api Gateway - HttpインテグレーションクライアントIP

他の方法がありますか?

答えて

1

リクエストペイロードマッピングを設定するだけです。必要なものは$ context.identity.sourceIpです。

$ context.identity.sourceIp

API ゲートウェイへの要求を行うTCP接続の送信元IPアドレス:ドキュメントによります。例と

ドキュメントは、あなたがあなたの統合応答のマッピングテンプレートでこれを行うことができますhttp://docs.aws.amazon.com/apigateway/latest/developerguide/api-gateway-mapping-template-reference.html

+0

は、私は私の体にそれを追加することを決定したマッピングテンプレートを使用して。体に単にプロパティを追加する方法はありますか? –

+0

マッピングテンプレートを使用してsourceIpをボディに追加する例については、https://forums.aws.amazon.com/thread.jspa?threadID=238081を参照してください。 –

0

でご利用いただけます。 $ context.identity.sourceIpを呼び出してsourceIpを取得します。

すでにマッピングテンプレートを使用している場合は、任意の都合の良い時点で追加できます。あなたが現在マッピングテンプレートを使用して、ちょうど入ってくるJSONのリクエストボディにSOURCEIPを追加する必要がされていない場合は、そのようにマッピングテンプレートを追加します。

#set($allParams = $input.path('$')) 
#set($discard=$allParams.put('sourceIp', $context.identity.sourceIp)) 
$input.json('$')) 
関連する問題