2017-01-29 10 views
1

問題:Dynamo DBから2000個の項目を取得し、バッチ処理(バッチサイズ= 100)で処理する(100項目からPOST要求を作成する)。ラムダ:バッチ処理スケジューラは利用できますか?

質問:AWSのどの設定でも達成できることはありますか。

PS:ラムダ機能を実行するためのcronスケジュールを設定しました。私はJavaを使用しています。私は同期的にそうするマルチスレッドアプリケーションを作ったが、これは結局私の計算時間を大幅に増やす。

+0

https://aws.amazon.com/batch/ AWSバッチを調べる方法はありますか?私はあなたのデータに何が起こったのかを知っていません(ダイナモブや外部システムに戻ってどこに行くのでしょうか)。でも、これを調べることができます –

+0

バッチサービスはUS-Westでは利用できません。 PS:このPOSTリクエストの結果は別のDynamoDBに保存されます。 – AMS

答えて

0

私は同じ問題を抱えており、次のように解決することを考えています。試してみると教えてください。

  1. ジョブのスケジュール#1で

  2. ラムダ関数は、各 項目を処理するために、SQSにMのメッセージを送信し、ラムダ関数をトリガし、この場合には、それが呼び出す必要がありますラムダ関数を使用してDynamoDBのからN個のアイテムを取得します ラムダ関数M回各ラムダ関数を使用すると、経由でイベントをスケジュールする必要があり、これを達成するために、メッセージ

で与えられた要求 を処理しますCloudWatch、SQSをセットアップし、SQSイベントによってトリガされるラムダ関数を作成します。

正直なところ、これが価格的に効果的かどうかはわかりませんが、それはうまくいくはずです。フェッチサイズが非常に小さいと仮定すると、これは妥当であるはずです。

また、SNSを使用してみることもできます。この場合、SQSメッセージのポーリングを心配する必要はありません。

関連する問題