![](/img/trans.png)
[英]How to capture output of a parallel state machine in AWS Step function
[英]State machine in AWS (step function?)
是的,Step Functions 是一個選項。 當場景涉及復雜的分支/重試邏輯和可觀察性要求時,步驟 Function 與其他 AWS 無服務器工作流模式(例如事件驅動或發布/ 訂閱)相比,“狀態機”增加了最大價值。 SM 邏輯是明確和可視的,這使得推理工作流變得簡單。 對於每個 State 機器 (SM) 執行,您可以輕松跟蹤執行所采用的確切路徑以及失敗的位置。 這種增加的功能反映在其較高的成本上。
在任何情況下,您都需要收集記錄,直到收集它們為止。 此批處理要求意味着您的架構將需要更多元素,而不僅僅是 State 機器。 這里有一些想法:
一種選擇是僅使用 State 機器來編排預處理和驗證。 每個到達的事件記錄都會啟動一個 SM 執行。 預處理將 go 記錄到隊列中,從隊列中定期輪詢並發送以進行組合。
[Records EventBrige event] -> [preprocessing SM] -> [Record queue] -> [polling lambda] -> [Combining Service]
在記錄到達時將它們收集在隊列中。 lambda 定期輪詢隊列並開始對一批記錄執行 SM。 SM Map 任務並行預處理和驗證記錄,然后調用組合服務,所有這些都在一次執行中完成。 此設置為您提供最大的可見性,但更復雜,因為您必須處理單個記錄導致批處理執行失敗的情況。
[Records arrive] -> [Record source queue] -> [polling lambda gets batch] -> [SM for preprocessing, collecting and combining]
還有很多其他組合,包括在必要時將 SM 鏈接在一起。 或者完全避免SM。 哪個選項最適合您將取決於哪些痛點對您最重要:可觀察性、錯誤處理、簡單性、成本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.