探索 Step Functions 工作流程的使用案例 - AWS Step Functions

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

探索 Step Functions 工作流程的使用案例

您可以使用建置工作流程 AWS Step Functions,以便隨時間管理狀態、根據傳入資料做出決策,以及處理錯誤和例外狀況。

資料處理

隨著資料量來自不同來源的增加,組織需要更快地處理資料,以便快速做出明智的業務決策。若要大規模處理資料,組織需要彈性佈建資源,以管理從行動裝置、應用程式、衛星、行銷和銷售、營運資料存放區、基礎架構等接收到的資訊。

透過水平擴展和容錯工作流程,Step Functions 可以操作數百萬個並行執行。您可以使用具有平行工作流狀態狀態的並行執行來更快地處理數據。或者,您可以使用地圖工作流程狀狀態的動態平行處理,在資料存放區 (例如 Amazon S3 儲存貯體) 中重複執行大型資料集。Step Functions 也提供重試失敗執行的功能,或選擇特定路徑來處理錯誤,而不需要管理複雜的錯誤處理程序。

Step Functions 直接與其他資料處理服務整合, AWS 例如用AWS Batch於批次處理、用EMR於大數據處理的 Amazon、用AWS Glue於資料準備、用於資料分析的 Athena,以及用AWS Lambda於運算。

客戶使用 Step Functions 完成的資料處理工作流程類型範例包括:

文件,視頻和圖像處理

  • 拍攝一系列視頻文件並將其轉換為其他尺寸或分辨率,這些文件非常適合顯示它們的設備,例如手機,筆記本電腦或電視。

  • 拍攝用戶上傳的大量照片,並將其轉換為縮略圖或各種分辨率圖像,然後可以在用戶的網站上顯示。

  • 擷取半結構化資料 (例如CSV檔案),並將其與非結構化資料 (例如發票) 結合使用,以產生每月傳送給業務利害關係人的業務報告。

  • 從衛星收集到的地球觀測數據,將其轉換為彼此一致的格式,然後添加在地球上收集的其他數據源以獲得更多見解。

  • 從各種運輸模式中獲取產品的運輸日誌,並使用蒙特卡羅模擬查找優化,然後將報告發送回依靠您運送貨物的組織和人員。

坐標提取,轉換和加載(ETL)工作:

  • 透過使用的一系列資料準備步驟,將銷售機會記錄與行銷量度資料集結合在一起 AWS Glue,並產生可在整個組織中使用的商業智慧報告。

  • 建立、啟動和終止用於大數據處理的 Amazon EMR 叢集。

Batch 處理和高效能運算 (HPC) 工作負載:

  • 構建基因組學二次分析管道,將原始的整個基因組序列處理為變體調用。將原始文件與參考序列對齊,並使用動態並行性調用指定染色體列表上的變體。

  • 通過使用不同的電氣和化學化合物模擬各種佈局,找到生產下一個移動設備或其他電子設備的效率。透過各種模擬執行大量的工作負載批次處理,以取得最佳設計。

機器學習

機器學習為組織提供了一種快速分析收集到的數據的方法,以最少的人為干預來識別模式並做出決策。機器學習始於一組初始資料,稱為訓練資料。訓練資料可提高機器學習模型的預測準確度,並做為模型學習的基礎。經過訓練的模型被視為足夠準確以符合業務需求之後,您就可以將模型部署到生產環境中。Github 上的AWS 步驟函數資料科學專案是一個開放原始碼程式庫,提供工作流程來預先處理資料、訓練,然後使用 Amazon SageMaker 和 Step Functions 發佈模型。

預先處理現有資料集是組織經常建立訓練資料的方式。此預處理方法會新增資訊,例如標示影像中的物件、註解文字或處理音訊。若要預先處理您可以使用的資料 AWS Glue,或者您可以建立在 Jupyter SageMaker 筆記本中執行的筆記本執行個體。資料準備就緒後,就可以將其上傳到 Amazon S3 進行存取。機器學習模型經過訓練後,您可以對每個模型的參數進行調整以提高準確性。

Step Functions 提供協調 end-to-end 機器學習工作流程的方法。 SageMaker這些工作流程可以包括資料預處理、後處理、特徵工程、資料驗證和模型評估。將模型部署到生產環境之後,您可以優化和測試新方法,以持續改善業務成果。您可以直接在 Python 中建立可供生產使用的工作流程,也可以使用 Step Functions 資料科學SDK複製該工作流程、試驗新選項,並將精細的工作流程置於生產環境中。

客戶使用 Step Functions 的某些機器學習工作流程類型包括:

詐騙偵測

  • 識別並防止詐騙交易發生,例如信用欺詐。

  • 使用訓練有素的機器學習模型偵測並防止帳戶遭到盜用。

  • 識別促銷濫用行為,包括建立虛假帳戶,以便您快速採取行動。

個人化與建議

  • 根據預測吸引他們的興趣,向目標客戶推薦產品。

  • 預測客戶是否要將其帳戶從免費方案升級為付費訂閱。

資料豐富

  • 使用資料擴充作為預先處理的一部分,為更準確的機器學習模型提供更好的訓練資料。

  • 註釋文本和音頻摘錄以添加語法信息,例如諷刺和俚語。

  • 在影像中標示其他物件,以提供重要資訊以供模型學習,例如物件是蘋果、籃球、岩石還是動物。

微服務協調

Step Functions 為您提供管理微服務工作流程的選項。

微服務架構將應用程式分解為鬆散耦合的服務。優點包括改善的可擴充性、提高彈性,以及加快產品上市時間。每個微服務都是獨立的,因此無需擴展整個應用程式即可輕鬆擴展單一服務或功能。個別服務是鬆散結合的,因此獨立團隊可以專注於單一業務流程,而不需要瞭解整個應用程式。

微型服務也提供符合您業務需求的個別元件,讓您無需重新撰寫整個工作流程即可彈性。不同的團隊可以使用他們選擇的程式設計語言和架構來處理他們的微服務。

對於長時間執行的工作流程,您可以使用 AWS Fargate 整合的標準工作流程來協調在容器中執行的應用 對於需要立即回應的短期大量工作流程,同步 Express 工作流程是理想的選擇。一個例子是基於 Web 的或移動應用程序,它需要在返回響應之前完成一系列步驟。您可以直接從 Amazon API Gateway 觸發同步快速工作流程,連線會保持開啟,直到工作流程完成或逾時為止。對於不需要立即回應的短期工作流程,Step Functions 提供非同步 Express 工作流程。

使用 Step Functions 的一些API協調流程的範例包括:

同步或即時工作流程

  • 變更記錄中的值;例如更新員工的姓氏,並立即顯示變更。

  • 在結帳時更新訂單,例如新增、移除或變更商品數量,然後立即向客戶顯示更新的購物車。

  • 執行快速處理工作,並立即將結果傳回給要求者。

容器協調

  • 使用 Amazon 彈性 Kubernetes 服務或 Amazon 彈性容器服務 (ECS) 在 Kubernetes 上執行任務,並在相同工作流程中與其他 AWS 服務整合,例如透過亞馬遜SNS傳送通知。

IT 和安全自動化

使用 Step Functions,您可以建立工作流程自動調整規模並回應工作流程中的錯誤的工作流程。您的工作流程可以自動重試失敗的工作,並使用指數輪詢來處理錯誤。

在 IT 自動化案例中,錯誤處理對於管理複雜且耗時的操作至關重要,例如升級和修補軟體、部署安全性更新以解決弱點、選取基礎結構、同步處理資料以及路由支援票證等。藉由自動執行重複且耗時的工作,您的組織可以快速且一致地大規模地完成例行作業。您的重點可以轉移到諸如功能開發、複雜的支援要求和創新等策略性工作,同時滿足您的營運需求。

當工作流程需要人工介入 (例如核准大幅增加信用) 時,您可以在「Step Functions」中定義分支邏輯,以便自動核准超過限制的請求,且限制的請求需要人工核准。需要人工核准時,Step Functions 可以暫停工作流程、等待人工回應,然後在收到回應後繼續工作流程。

自動化工作流程的一些範例包括:

IT 自動化

  • 自動修復事件,例如開放SSH連接埠、磁碟空間不足,或授予公開存取 Amazon S3 儲存貯體時的公開存取權。

  • 自動化部署 AWS CloudFormation StackSets.

安全自動化

  • 自動回應已公開使用者和使用者存取金鑰的案例。

  • 根據原則動作 (例如將動作限制為特定動作) 自動修復安全性事件回應。ARNs

  • 在收到網絡釣魚電子郵件後的幾秒鐘內警告員工。

人工批准

  • 將機器學習模型訓練自動化,然後先取得資料科學家核准模型,再部署更新的模型。

  • 根據情緒分析自動化客戶反饋路由,因此負面評論可以快速升級以供審核。