與流程執行非同步地執行 Amazon Bedrock 流程 - Amazon Bedrock

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

與流程執行非同步地執行 Amazon Bedrock 流程

透過流程執行,您可以非同步執行 Amazon Bedrock 流程。這可讓您的流程執行更長的持續時間,並產生控制,讓您的應用程式可以執行其他任務。

當您使用 Amazon Bedrock 主控台或 InvokeFlow 操作執行流程時,流程會執行到完成或一小時逾時為止 (以先到者為準)。當您執行流程執行時,流程可能會執行更長的時間:個別節點最多可執行五分鐘,而整個流程最多可執行 24 小時。

注意

流程執行在 Amazon Bedrock 的預覽版本中,可能會有所變更。

執行流程執行所需的許可

建立和管理流程執行

您可以在 主控台或使用 StartFlowExecution 操作建立流程執行。

Console
  1. 遵循 中的指示建立流程在 Amazon Bedrock 中建立和設計流程

  2. 遵循 中的指示建立流程的別名在 Amazon Bedrock 中建立流程的別名

  3. 如果您尚未在流程建置器中,請執行下列動作:

    1. AWS Management Console 使用具有 Amazon Bedrock 許可的 IAM 角色登入 ,並在 入門 AWS Management Console中開啟 Amazon Bedrock 主控台。

    2. 從左側導覽窗格中選取 Amazon Bedrock Flows,然後選擇您的流程。

  4. 選擇執行索引標籤,然後選擇建立執行

  5. 建立執行對話方塊中,輸入下列內容

    1. 名稱中,輸入流程執行的名稱。

    2. 針對選取別名,選擇您要使用之流程的別名。

    3. 針對提示輸入,輸入您要用來啟動流程的提示。

    4. 選擇建立以建立流程執行並開始執行。

  6. 在流程詳細資訊頁面上,選擇執行索引標籤,並在執行狀態中記下流程執行的狀態

  7. (選用) 選擇執行以開啟流程,並查看執行摘要。

    執行輸出中,您會看到來自流程的輸出。

  8. (選用) 若要停止流程執行,請選取執行,然後選擇停止

API
啟動流程執行

若要執行流程執行,請使用 Amazon Bedrock 執行時間端點的代理程式傳送 StartFlowExecution 請求。在請求中,指定您要執行之流程的流程 ID 和流程別名 ID。您還可以指定下列項目:

  • input – 陣列,其中包含您希望流程從中開始執行的輸入節點。您可以在 content 欄位中指定要傳送至提示流程輸入節點的輸入。

  • name – 流程執行的名稱。

{ "inputs": [{ "nodeName": "FlowInputNode", "nodeOutputName": "document", "content": { "document": "Test" } }], "name": "MyExecution" }

回應是流程執行的 Amazon Resource Name (ARN)。您可以使用 executionArn輪詢流程的目前狀態,例如流程執行完成或條件節點評估其條件時。

{ "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution" }
追蹤流程執行的進度

使用 GetFlowExecution 操作來取得您透過執行 ARN 識別之流程的目前狀態。流程狀態為 RunningSucceededTimedOutFailedAborted

{ "endedAt": null, "errors": null, "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution", "flowAliasIdentifier": "TSTALIASID", "flowIdentifier": "FLOWID", "flowVersion": "DRAFT", "startedAt": "2025-03-20T23:32:28.899221162Z", "status": "Running" }

錯誤 (例如逾時的 Lambda 節點) 會在errors陣列中傳回,如下列範例所示:

"errors": [{ "nodeName": "LambdaNode1", "errorType": "ExecutionTimedOut", "message": "Call to lambda function timed out" }],
取得流程執行的結果

Amazon Bedrock 會將流程的輸出寫入流程的輸出節點。您可以在流程完成或流程執行時取得輸出 (取決於您的使用案例)。

如果您希望流程先完成,請呼叫 ,GetFlowExecution並確認回應中的 status 欄位值為 Succeeded

若要從流程執行取得輸出事件清單,請呼叫 ListFlowExecutionEvents。在回應中,檢查 中的flowOutputEvent物件flowExecutionEvents。例如,您可以在 content 欄位中取得流程的輸出:

{ "flowOutputEvent": { "content": { "document": "The model response." }, "nodeName": "FlowOutputNode" } }

您可以將eventType查詢參數設定為 ListFlowExecutions ,將來自 的輸出限制為僅輸入和輸出節點Flow

檢視事件

為了協助偵錯流程執行,您可以使用 ListFlowExecutionEvents 操作來檢視節點在流程執行期間產生的事件。將eventType查詢參數設定為 Node,以查看回應中所有節點 (包括中繼節點) 的輸入和輸出,類似下列範例:

{ "flowExecutionEvents": [{ "nodeOutputEvent": { "fields": [{ "content": { "document": "History book" }, "name": "document" }], "nodeName": "FlowInputNode", "timestamp": "2025-05-05T18:38:56.637867516Z" } }, { "nodeInputEvent": { "fields": [{ "content": { "document": "History book" }, "name": "book" }], "nodeName": "Prompt_1", "timestamp": "2025-05-05T18:38:57.434600163Z" } }, { "nodeOutputEvent": { "fields": [{ "content": { "document": "Here's a summary of the history book." }, "name": "modelCompletion" }], "nodeName": "Prompt_1", "timestamp": "2025-05-05T18:39:06.034157077Z" } }, { "nodeInputEvent": { "fields": [{ "content": { "document": "Here's a summary of the history book." }, "name": "document" }], "nodeName": "FlowOutputNode", "timestamp": "2025-05-05T18:39:06.453128251Z" } } ] }
取得流程執行的快照

當流程執行開始時,Amazon Bedrock 會自動擷取流程定義和中繼資料的快照。這很有用,因為流程可以在非同步執行時更新。若要擷取此快照,請呼叫 GetExecutionFlowSnapshot 操作。回應包含下列流程欄位:

  • customerEncryptionKeyArn – 加密流程之 AWS KMS 金鑰的 ARN。

  • 定義 – 流程的定義

  • executionRoleArn – 流程執行所使用的 IAM 服務角色 ARN。

  • flowAliasIdentifier – 流程的別名 ID。

  • flowIdentifier – 流程的 ID。

  • flowVersion – 流程的版本。

{ "customerEncryptionKeyArn": null, "definition": "{flow-definition}", "executionRoleArn": "arn:aws:iam::111122223333:role/name", "flowAliasIdentifier": "TSTALIASID", "flowIdentifier": "FLOWID", "flowVersion": "DRAFT" }
列出您的流程執行

您可以呼叫 ListFlowExecutions 操作,以取得流程執行的清單。回應包含flowExecutionSummaries陣列,其中包含有關流程或 AWS 區域 流程別名的目前 中每個流程執行的資訊。每個元素都包含執行 ARN、開始時間和流程目前狀態等資訊。

{ "flowExecutionSummaries": [{ "createdAt": "2025-03-11T23:21:02.875598966Z", "endedAt": null, "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution", "flowAliasIdentifier": "TSTALIASID", "flowIdentifier": "FLOWID", "flowVersion": "DRAFT", "status": "Running" }] }
停止執行中的流程執行

如果您需要停止執行中的流程執行,請呼叫 StopFlowExecution 操作,並傳遞要停止之執行的流程 ID、流程別名 ID 和流程執行 ID。

流程執行狀態

流程執行可以有下列其中一種狀態:

  • 執行中 – 流程執行正在進行中。

  • 成功 – 流程執行已成功完成。

  • 失敗 – 由於發生錯誤,流程執行失敗。

  • TimedOut – 流程執行超過 24 小時的最大執行時間。

  • 已中止 – 流程執行已使用 StopFlowExecution 操作手動停止。

不會再執行的流程執行會在 90 天後自動刪除。

流程執行的最佳實務

使用流程執行時,請考慮下列事項:

  • 使用 GetFlowExecution 定期輪詢流程執行的狀態,直到流程達到結束狀態 (這是 以外的任何項目Running)。

  • 當您的流程執行達到結束狀態時,請使用 ListFlowExecutionEvents 來取得流程的結果。例如,您可以使用這些結果在流程周圍建置一些邏輯。

  • 使用 GetExecutionFlowSnapshot 取得流程執行的快照,以便在執行發生問題時協助偵錯。