2017-08-19 8 views
1

したがって、Amazon AWSで単純なパイプラインを作成しようとしています。私は、ステートマシンの最初のラムダをトリガーするストリームによって生成されたデータを使用してステップ関数を実行したい。Amazonのステップ関数Kinesisからトリガーを受け取る

私がしたいのは、次のとおりです。

入力データは、このキネシスストリームが実行され、S3バケットに書き込むlambda1ためのトリガとして使用されるAWSキネシス

によってストリーミングされます。

これは、与えられたバケットからコンテンツを読み、

は、今私はアマゾンのステップ関数を使用してステートマシンを実装する別のバケツにそれを書くとlambda2(ステップ関数を使用して)トリガします。私はキネシスは、最初のラムダをトリガーする必要があり、その実行後はステップ関数が発生していないようラムダ2.実行するということであり、何をしたいです

{ 
    "Comment": "Linear step function test", 
    "StartAt": "lambda1", 
    "States": { 
    "lambda1": { 
     "Type": "Task", 
     "Resource": "arn:....", 
     "Next": "lambda2" 
    }, 
    "lambda2": { 
     "Type": "Task", 
     "Resource": "arn:...", 
     "End": true 
     } 
    } 
} 

非常に簡単です、ステートマシンを作成しました。ステップ関数は、私のラムダ1がストリームからトリガーされてS3バケットに書き込まれても何もしません。新しい実行を手動で開始し、入力としてJSONを渡すオプションがありますが、それは私が探しているワークフローではありません

答えて

3

ステートマシンを起動するのは間違っていました。

SDKを使用してステートマシンを呼び出すには、別のStarter Lambda関数を追加する必要があります。プロセスは次のようである: - >スターター(ラムダ) -

キネシス>ステートマシン(ラムダ1とラムダ2開始)

ステップ関数を使用することの問題は、トリガーの欠如です。 CloudWatchイベント、SDKまたはAPIゲートウェイのトリガーは3つだけです。

+0

ありがとう、私はすでにその方法で実装していますが、あなたの答えは他の人に役立つと確信しています –

関連する問題