フロー実行を使用して Amazon Bedrock フローを非同期で実行する - Amazon Bedrock

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

フロー実行を使用して Amazon Bedrock フローを非同期で実行する

フロー実行では、Amazon Bedrock フローを非同期で実行できます。これにより、フローの実行時間が長くなり、アプリケーションが他のタスクを実行できるように制御することも可能になります。

Amazon Bedrock コンソールまたは InvokeFlow オペレーションを使用してフローを実行すると、フローは終了するまで、または 1 時間でタイムアウトするまで (いずれか早い方) 実行されます。フロー実行を実行すると、フローの実行時間がはるかに長くなります。個々のノードは最大 5 分、フロー全体は最大 24 時間実行できます。

注記

フロー実行は Amazon Bedrock のプレビューリリースで行われるため、変更される可能性があります。

フロー実行を実行するために必要なアクセス許可

フロー実行を作成および管理する

フロー実行は、コンソールで、または StartFlowExecution オペレーションを使用して作成できます。

Console
  1. Amazon Bedrock でフローを作成および設計する」の手順に従ってフローを作成します。

  2. Amazon Bedrock でフローのエイリアスを作成する」の手順に従って、フローのエイリアスを作成します。

  3. [フロービルダー] を開いていない場合は、以下を実行します。

    1. Amazon Bedrock コンソールを使用するためのアクセス許可を持つ IAM ID を使用して、AWS マネジメントコンソールにサインインします。Amazon Bedrock コンソール (https://console.aws.amazon.com/bedrock) を開きます。

    2. 左側のナビゲーションペインから [Amazon Bedrock フロー] を選択し、フローを選択します。

  4. [実行] タブを選択し、[実行を作成] を選択します。

  5. [実行を作成] ダイアログで、以下を入力します。

    1. [名前] にフロー実行の名前を入力します。

    2. [エイリアスを選択] で、使用するフローのエイリアスを選択します。

    3. [プロンプト入力] に、フローを開始するプロンプトを入力します。

    4. [作成] を選択してフロー実行を作成し、その実行を開始します。

  6. フローの詳細ページで、[実行] タブを選択し、[実行ステータス] のフロー実行のステータスを書き留めます。

  7. (オプション) 実行を選択してフローを開き、実行の概要を表示します。

    [実行出力] に、フローからの出力が表示されます。

  8. (オプション) フロー実行を停止するには、実行を選択し、[停止] を選択します。

API
フロー実行を開始する

フロー実行を実行するには、Amazon Bedrock エージェントのランタイムエンドポイントを使用して StartFlowExecution リクエストを送信します。リクエストで、実行するフローのフロー ID とフローエイリアス ID を指定します。以下を指定することもできます。

  • 入力 – フローの実行を開始する入力ノードを含む配列。content フィールドで、プロンプトフロー入力ノードに送信する入力を指定します。

  • 名前 – フロー実行の名前。

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

レスポンスは、フロー実行の Amazon リソースネーム (ARN) です。フローの実行が終了したときや条件ノードが条件を評価するときなどに、executionArn を使用してフローの現在の状態をポーリングできます。

{ "executionArn": "arn:aws:bedrock:us-west-2:111122223333:flow/FLOWID/alias/TSTALIASID/execution/MyExecution" }
フロー実行の進行状況を追跡する

GetFlowExecution オペレーションを使用して、実行 ARN で識別したフローの現在のステータスを取得します。フローステータスは、RunningSucceededFailedTimedOut、または Aborted のいずれかです。

{ "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 を呼び出します。レスポンスで、flowExecutionEventsflowOutputEvent オブジェクトを確認します。例えば、content フィールドでフローの出力を取得できます。

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

eventType クエリパラメータを Flow に設定することで、ListFlowExecutions からの出力を入力ノードと出力ノードのみに制限できます。

イベントの表示

フロー実行のデバッグに役立つように、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 オペレーションを呼び出すことで、フロー実行のリストを取得できます。レスポンスには、フローまたはフローエイリアスの現在の AWS リージョン の各フロー実行に関する情報を含む flowExecutionSummaries 配列が含まれます。各要素には、実行 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 を渡します。

フロー実行ステータス

フロー実行には、次のいずれかのステータスがあります。

  • 実行中 – フロー実行が進行中です。

  • 成功 – フロー実行が正常に完了しました。

  • 失敗 – エラーのため、フロー実行が失敗しました。

  • タイムアウト – フロー実行が最大ランタイムの 24 時間を超えました。

  • 中止StopFlowExecution オペレーションを使用してフロー実行が手動で停止されました。

実行されなくなったフロー実行は、90 日後に自動的に削除されます。

フロー実行のベストプラクティス

フロー実行を使用するときは、以下を考慮してください。

  • フローが終了状態 (Running 以外) になるまで、GetFlowExecution を使用してフロー実行のステータスを定期的にポーリングします。

  • フロー実行が終了状態になったら、ListFlowExecutionEvents を使用してフローの結果を取得します。例えば、これらの結果を使用して、フローの周囲にロジックを構築できます。

  • GetExecutionFlowSnapshot を使用してフロー実行のスナップショットを取得して、実行で問題が発生した場合のデバッグに役立てます。