2016-07-09 25 views
0

S3ファイルを実行するラムダ関数を作成し、必要に応じて他のラムダ関数を起動して並列にファイルを解析したいとします。 これは可能ですか?ラムダ関数が別のラムダ関数を呼び出す

+2

[AWSラムダ関数が別のものを呼び出せるかどうか](http://stackoverflow.com/questions/31714788/can-an-aws-lambda-function-call-another) – Leon

答えて

1

はい、可能です。他の場所で動作するコードと同じように、AWS SDK(Lambdaランタイム環境に含まれています)を使用して他のラムダ関数を呼び出すことができます。

もっと詳しい答えが必要な場合は、ラムダ関数を書いている言語を指定する必要があります。

1

私が問題を正しく理解していれば、S3バケットのファイルのリストを通過する1つのラムダが必要です。条件によっては、ファイルを解析するかどうかを決める条件もあります。解析すべきファイルについては、別の 'ファイル解析'ラムダがそれらのファイルを解析します。

これを行うには、「S3リーダー」と「S3ファイルパーサー」の2つのラムダが必要です。

'S3ファイルパーサー'ラムダをトリガーするには、多くのオプションがあります。ここには2つあります:

  1. SNSトピックを使用してそれをトリガーします。 (Hereはそれを行う方法に関する記事です)。ファイルのリストが非常に長い場合、これは問題になる可能性があります。パラレルで実行できるラムダのインスタンスの数を上回る可能性が最も高いからです。
  2. AWS SDKを使用して起動すると、トリガーできます。 (これを行う方法については、articleの 'Leon'をコメントとして投稿してください)ここで考慮する必要があるのは、ファイルの長いリストが、呼び出しを制御する 'S3 reader' lambdaに5ラムダの実行時の制限を最小にします。別の潜在的な解決策は、単にファイルをS3バケットにアップロードされますときにトリガされます1つのラムダを持っており、それが解析されたりせず、その後、必要に応じてそれを解析し得るかどうかを決定できるようにすることです実際のユースケースに応じて、

。その方法の詳細はarticletutorialにあります。

関連する問題