本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
探索 Step Functions 工作流程的使用案例
使用 AWS Step Functions,您可以建置工作流程,以管理隨著時間推移的狀態、根據傳入的資料做出決策,以及處理錯誤和例外狀況。
資料處理
隨著資料量從各種來源成長,組織需要更快地處理資料,以便快速做出明智的商業決策。若要大規模處理資料,組織需要彈性佈建資源,以管理從行動裝置、應用程式、衛星、行銷和銷售、營運資料存放區、基礎設施等接收到的資訊。
使用水平擴展和容錯工作流程,Step Functions 可以操作數百萬個並行執行。您可以使用具有 平行工作流程狀態
狀態的平行執行更快速地處理資料。或者,您可以使用 映射工作流程狀態
狀態的動態平行處理來反覆運算資料存放區中的大型資料集,例如 Amazon S3 儲存貯體。Step Functions 也提供重試失敗執行的功能,或選擇特定路徑來處理錯誤,而無需管理複雜的錯誤處理程序。
Step Functions 會直接與 提供的其他資料處理服務整合, AWS 例如AWS Batch用於批次處理、Amazon EMR 用於大數據處理、AWS Glue用於資料準備、Athena 用於資料分析,以及AWS Lambda用於運算。
客戶使用 Step Functions 完成的資料處理工作流程類型範例包括:
檔案、影片和影像處理
-
收集一系列影片檔案,並將其轉換為最適合用來顯示它們的裝置的其他大小或解析度,例如行動電話、筆記型電腦或電視。
-
擷取使用者上傳的大量相片,並將其轉換為縮圖或各種解析度影像,然後顯示在使用者的網站。
-
取得半結構化資料,例如 CSV 檔案,並將其與發票等非結構化資料結合,以產生每月傳送給業務利益相關者的業務報告。
-
進行地球觀察,觀察從衛星收集的資料,將其轉換為彼此一致的格式,然後新增地球上收集的其他資料來源,以取得更多洞見。
-
從各種運輸模式取得產品運輸日誌,並使用 Monte Carlo 模擬尋找最佳化,然後將報告傳回給依賴您運送其商品的組織和人員。
座標擷取、轉換和載入 (ETL) 任務:
-
透過一系列使用 的資料準備步驟,結合銷售機會記錄與行銷指標資料集 AWS Glue,並產生可在組織中使用的商業智慧報告。
-
建立、啟動和終止 Amazon EMR叢集以進行大數據處理。
批次處理和高效能運算 (HPC) 工作負載:
-
建置基因體輔助分析管道,將原始的整個基因體序列處理為變體呼叫。將原始檔案與參考序列對齊,並使用動態平行處理在指定的染色體清單上呼叫變體。
-
使用不同的電氣和化學化合物模擬各種配置,以找出下一個行動裝置或其他電子元件的生產效率。透過各種模擬執行工作負載的大型批次處理,以取得最佳設計。
機器學習
機器學習為組織提供了一種方法,可快速分析收集的資料,以識別模式,並在最少的人為介入的情況下做出決策。機器學習從一組初始資料開始,稱為訓練資料。訓練資料可提高機器學習模型的預測準確性,並做為模型學習的基礎。在訓練模型視為足夠準確以滿足業務需求之後,您可以將模型部署到生產環境。AWS Github 上的 Step Functions 資料科學專案
預先處理現有資料集是組織經常建立訓練資料的方式。此預先處理方法會新增資訊,例如標記影像中的物件、註釋文字或處理音訊。若要預先處理您可以使用的資料 AWS Glue,或者您可以建立在 Jupyter 筆記本中執行的 SageMaker AI 筆記本執行個體。資料準備就緒後,即可上傳至 Amazon S3 進行存取。隨著機器學習模型的訓練,您可以調整每個模型的參數,以提高準確性。
Step Functions 提供在 SageMaker AI 上協調 end-to-end機器學習工作流程的方法。這些工作流程可能包括資料預先處理、後製處理、特徵工程、資料驗證和模型評估。在模型部署到生產環境之後,您可以精簡和測試新方法,以持續改善業務成果。您可以直接在 Python 中建立可生產的工作流程,也可以使用 Step Functions Data Science SDK 複製該工作流程、試驗新選項,以及將精簡的工作流程放入生產中。
客戶針對 使用 Step Functions 的一些機器學習工作流程類型包括:
詐騙偵測
-
識別並防止發生詐騙交易,例如信用詐騙。
-
使用訓練有素的機器學習模型來偵測和防止帳戶接管。
-
識別促銷濫用,包括建立仿造帳戶,以便您可以快速採取行動。
個人化和建議
-
根據預測的內容,向目標客戶推薦產品,以吸引他們的興趣。
-
預測客戶是否會將其帳戶從免費方案升級至付費訂閱。
資料擴充
-
使用資料擴充作為預先處理的一部分,以提供更好的訓練資料,以更精確的機器學習模型。
-
註釋文字和音訊摘錄以新增語法資訊,例如 sarcasm 和 slang。
-
在影像中標記其他物件,以提供模型要學習的關鍵資訊,例如物件是蘋果、籃球、岩石或動物。
微服務協調
Step Functions 為您提供管理微服務工作流程的選項。
Microservice 架構會將應用程式分成鬆散耦合的服務。優點包括改善可擴展性、提高彈性,以及更快的上市時間。每個微服務都是獨立的,因此可以輕鬆擴展單一服務或函數,而無需擴展整個應用程式。個別服務鬆散耦合,因此獨立團隊可以專注於單一業務流程,而不需要了解整個應用程式。
Microservices 也提供符合您業務需求的個別元件,讓您無須重寫整個工作流程即可享有彈性。不同的團隊可以使用他們選擇的程式設計語言和架構來使用其微型服務。
對於長時間執行的工作流程,您可以使用標準工作流程與 AWS Fargate 整合來協調在容器中執行的應用程式。對於需要立即回應的短期、大量工作流程,同步快速工作流程是理想的選擇。其中一個範例是 Web 型或行動應用程式,其需要完成一系列步驟,才能傳回回應。您可以直接從 Amazon API Gateway 觸發同步快速工作流程,且連線會保持開啟狀態,直到工作流程完成或逾時為止。對於不需要立即回應的短期工作流程,Step Functions 提供非同步快速工作流程。
使用 Step Functions 的一些API協調範例包括:
同步或即時工作流程
-
變更記錄中的值;例如更新員工的姓氏並立即顯示變更。
-
在結帳時更新訂單,例如新增、移除或變更項目的數量;然後立即向客戶顯示更新的購物車。
-
執行快速處理任務,並立即將結果傳回給請求者。
容器協調
-
使用 Amazon Elastic Kubernetes Service 在 Kubernetes 上執行任務,或使用 Fargate 在 Amazon Elastic Container Service (ECS) 上執行任務,並與其他服務整合 AWS ,例如使用 Amazon 傳送通知SNS,作為相同工作流程的一部分。
IT 和安全自動化
透過 Step Functions,您可以建立工作流程,以自動擴展並回應工作流程中的錯誤。您的工作流程可以自動重試失敗的任務,並使用指數退避來處理錯誤。
在 IT 自動化案例中,錯誤處理對於管理複雜且耗時的作業至關重要,例如升級和修補軟體、部署安全更新以解決漏洞、選取基礎設施、同步資料和路由支援票證。透過自動化重複且耗時的任務,您的組織可以快速且一致地大規模完成例行操作。您的重點可以轉移到策略工作,例如功能開發、複雜的支援請求和創新,同時滿足您的營運需求。
當工作流程需要人工介入才能繼續執行時,例如核准大幅提高的額度時,您可以在 Step Functions 中定義分支邏輯,以便自動核准低於限制的請求,且限制的請求需要人工核准。需要人工核准時,Step Functions 可以暫停工作流程、等待人工回應,然後在收到回應後繼續工作流程。
自動化工作流程的一些範例包括下列項目:
IT 自動化
-
自動修復事件,例如開放SSH連接埠、磁碟空間不足,或公有存取 Amazon S3 儲存貯體獲得公有存取。
-
自動化部署 AWS CloudFormation StackSets。
安全自動化
-
將回應自動化至已公開使用者和使用者存取金鑰的情況。
-
根據政策動作自動修復安全事件回應,例如將動作限制為特定 ARNs。
-
在收到網路釣魚電子郵件後幾秒鐘內警告員工。
人工核准
-
自動化機器學習模型訓練,然後在部署更新後的模型之前,先取得資料科學家對模型的核准。
-
根據情緒分析自動化客戶意見回饋路由,以便快速呈報負面評論以供審核。