2017-08-24 3 views
0

私のリソース/ apiには、BodyをKinesis Firehoseに(そしてESに)プロキシするメソッドPOSTがあります。同時に、私はそれがラムダ関数をトリガしたい。AWS APIゲートウェイメソッドごとに複数の統合リクエスト

ラムダ関数をトリガする追加のメソッドANYを追加しようとしましたが、APIゲートウェイがPOSTハンドラを優先しているようです。

私はPOSTでLambdaを起動し、Lambda関数からFirehoseに送信できることを知っていますが、私はそれらの2つを互いに独立させたいと思っています。

+0

ラムダ(呼び出す必要のないラムダ)をミドルレイヤーにしたくないのはなぜでしょうか。例えば、積分要求は、少数のライナーであるラムダXを呼び出す。ラムダXは元のラムダを呼び出し、キネシスを引き起こしますか?また、これらの両方からレスポンス/ステータスを収集/待機する必要がありますか、それとも発射に気をつけますか? – Nicholas

+0

オリジナルのラムダを持っていないので、API Gatewayは直接Kinesisに送信します。 – Glaslos

+0

あなたはステップ機能を考慮しましたか? http://docs.aws.amazon.com/step-functions/latest/dg/tutorial-api-gateway.html – Nicholas

答えて

2

APIゲートウェイは、複数の同時アクションに要求をフォークしません。 ANYの方法は、「定義された方法のない任意の方法」を意味する。 POSTも定義されているため、POSTにはANYが表示されません。

ラムダ関数を実行してキネシスAPIを呼び出すには、ラッパーとして機能する最初のラムダ関数を記述し、両方のアクションを実行する必要がありますKinesisへのリクエストとLambdaへのリクエスト(他のラムダ機能を呼び出すため) - ビジネスロジックが許可する場合は非同期的に - 結果をあなたのニーズを満たす単一のコヒーレントな応答にマーシャリングします。

この第1のラムダ関数は、第2のラムダ関数と同じ言語である必要はありません。たとえば、既存のラムダ関数がJavaの場合、ラッパー関数はNodeに書き込むことができます。ラムダAPIの反対側で独立して実行されます。

+0

私の観察を確認していただきありがとうございます。私が余分なラムダを避けたい主な理由は、キネシスがAPIゲートウェイにきちんと統合されていることでした。また、私がしようとしている2つのアクション(KinesisとLambda)は完全に独立しており、いずれのアクションも期待していません。私はあなたの答えを数時間で受け入れます。 – Glaslos

関連する問題