問題タブ [aws-step-functions]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
amazon-s3 - ステップ関数は静的 Web サイトで待機できますか?
s3 と api ゲートウェイを使用して静的 Web サイトをデプロイする場合、ステップ関数が何らかのアクティビティを待機してから、その静的 Web サイトのユーザーを別の Web サイトにリダイレクトする方法はありますか?
aws-step-functions - 複数の実行を伴う AWS Step Functions
私は次のものを持っていますStep Function
:
これStep Function
は Lambda の動的入力データを受け取るため、さまざまな目的で呼び出される柔軟性があります。
Executions
1 時間待つ人もいれば、3 時間待つ人もいるかもしれません。
同じステップ関数を 5,000 回実行するとします。各実行には、独自の一意の「名前」があります。次に、実行を停止すると、次のステータスが得られます。
中止された実行と同じ「名前」を使用して新しい実行を作成することは可能ですか? または、中止された実行を再開することは可能ですか? または、これは良い習慣ではありませんか?
他の質問は次のとおりです。
実行が停止 (中止) されると、中止されるまで実行された状態のコストのみが生成されるため、AWS 請求で追加のコストは生成されませんか?
最後の質問は次のとおりです。
1,000,000回のオープン実行の制限に関するものです...
開いている実行は、実行中の実行と同じですか? たとえば、実行中の実行が 10 あり、そのうちの 5 つを中止すると、「開いている」実行は 5 つだけになりますか?
amazon-web-services - バッチ処理の制限がある AWS Step Functions
シナリオ: 小さいサイズ (それぞれ平均 50 バイト) の一連のレコード (10k、おそらくそれ以上) を処理する必要があります。パフォーマンスを向上させるには、処理を並行して行うか、その他の方法で行う必要があります (処理するレコードがたくさんあることを思い出してください)。また、処理自体は非常に単純な作業です (AWS Lambda を使用する理由の 1 つです)。単純ですが、一部の処理は他の処理の前後に終了する可能性があるため、これらのレコードが互いに独立しており、処理の順序は問題にならないもう 1 つの理由です。
これまでのところ、Step Functions は進むべき道のようです。
Step Functions を使用すると、次のグラフを作成できます。
RecordsRetrieval を 1 つのタスクとして定義できます。その後、これらのレコードは、タスク ProcessRecords-Task-1、ProcessRecords-Task-2、および ProcessRecords-Task-3 によって並行して処理されます。見た目からして、元気でダンディでしょ?違う!
最初の問題:動的スケーリング処理するレコードの量を考慮して、これらのタスクの動的スケーリング(たとえば、10、100、5k、または10k)が必要な場合は、jsonを動的に構築する必要がありますそれを達成します(非常にエレガントなソリューションではありませんが、うまくいくかもしれません)。タスクの数には限界があると確信しているので、それに頼ることはできません。スケーリングの重労働が私ではなくインフラストラクチャによって処理されると、はるかに良いでしょう。
いずれにせよ、GetAddress、GetPhoneNumber、GetWhatever などの明確に定義された一連の並列タスクについては、すばらしいことです。魔法のように動作します!
2 番目の問題: ペイロード ディスパッチ RecordsRetrieval タスクの後、これらのレコードのそれぞれを個別に処理する必要があります。Step Functions では、それを達成する方法がわかりませんでした。RecordsRetrieval タスクがそのペイロード (この場合はこれらのレコード) を渡すと、すべての並列タスクが同じペイロードを処理します。
繰り返しますが、最初の問題で述べたように、明確に定義された並列タスクのセットには完全に適合します。
結論 おそらく、AWS Step Functions は私のシナリオのソリューションではないと思います。これは私の知識の要約ですので、何か見逃した場合は遠慮なくコメントしてください。
私は多くの理由 (スケーラビリティ、サーバーレス、シンプルさなど) からマイクロサービス アプローチを検討しています。
これらのレコードを取得して、1 つずつ別のラムダに送信できることはわかっていますが、これもあまり洗練されたソリューションではありません。
また、これはバッチ ジョブであり、AWS には Batch サービスがあることも知っています。私がやろうとしているのは、AWS Batch/EC2 に依存せずにマイクロサービス アプローチを維持することです。
それについてどう思いますか。お気軽にコメントください。任意の提案をいただければ幸いです。