2017-04-11 17 views
4

マイクロサービス間でタスクを調整するためのより良いオプションはありますか?AWS SNSとAWSのステップ関数

たとえば、顧客情報を処理し、他のマイクロサービスに通知する必要のあるマイクロサービスがある場合は、マイクロサービス間でワークフロー(AWSステップ)を作成するか、SNSを使用する方が良いでしょうか?

私のAWSのステップは私のラムダ関数とSNSを結合しないと思います。

答えて

4

AWSステップ関数は、AWSラムダ関数を実行するステップマシンです。あなたの仕事が「これを行うならば、この活動」、「ステップ関数」が良い選択肢になります。次のステップを決定するロジックを含み、自動的に再試行を処理します。 Amazon Simple Workflow(SWF)の最新バージョンです。

Amazon Simple Notification Service(SNS)もLambda機能を起動できますが、ロジックやリトライは処理しません。デカップリングされたサービス、特に複数のサブスクライバがトピックから同じメッセージを受信するファンアウト(例えば、複数のラムダ機能の起動や複数の通知の送信など)に適しています。これは基本的にパブリック/サブスクライブサービスです。ラムダはサブスクライバタイプの1つです。

この選択は、使用するケースによって異なります。ステップ関数を使用するように物事を再設計したくない場合は、SNS経由で通知を送信してください。ラムダ機能を起動するのではなく、通知(電子メールなど)を送信することがある場合は、SNSを使用してください。

現在のところ、SNSはどこにでもありますが、あなたの選択にも影響する可能性があるため、すべての地域でステップ関数を使用することはできません。

4

どのような調整が必要かによって異なります。 同期または非同期。

それが同期している場合は、あなたが実際にそれらの間にいくつかの協調をしたい場合は、その後、アマゾンシンプル通知サービス(SNS)はが進むべき道だろう助けとAWSのステップ関数ではないでしょう。

しかし、要件が非同期で、マイクロサービスに通知/呼び出しを行いたい場合は、SNSがより適しています。

あなたが「他のマイクロサービスに通知する必要がある」ということを読むことができますので、私はそれを通知すること(それらを調整することと反対)であり、それぞれが他のマイクロサービスに頼ることなくさらに何をすべきかを知っていると思います。それが本当であれば、SNSはうってつけです。

関連する問題