Amazon SWF ワークフロー履歴 - Amazon Simple Workflow Service

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

Amazon SWF ワークフロー履歴

すべてのワークフロー実行の進行状況は、Amazon SWF が保持するワークフロー履歴に記録されます。ワークフロー履歴は、ワークフロー実行が開始されてから発生したすべてのイベントの詳細かつ完全で一貫性のあるレコードです。イベントは、スケジュールされている新しいアクティビティや実行中のアクティビティが完了したなど、ワークフローの実行状態の個別の変化を表します。ワークフロー履歴には、スケジュールされたアクティビティ、完了したアクティビティ、タスクのタイムアウト、シグナルなど、ワークフロー実行の実行状態を変化させるすべてのイベントが含まれます。

ワークフロー実行の状態を変化させないオペレーションは、通常、ワークフロー履歴には表示されません。たとえば、ワークフロー履歴には、ポーリングの試行や可視性オペレーションの使用は表示されません。

ワークフロー履歴には、以下のような重要な利点があります。

  • ワークフロー実行に関するすべての情報がワークフロー履歴に保存されるため、アプリケーションをステートレスにすることができます。

  • ワークフローの実行ごとに、履歴には、スケジュールされたアクティビティ、現在のステータス、およびその結果のレコードが表示されます。ワークフローの実行では、この情報を使用して次のステップを決定します。

  • この履歴には、実行中のワークフロー実行をモニタリングし、完了したワークフロー実行を検証するために使用できる詳細な監査証跡が用意されています。

以下は、e コマースのワークフロー履歴の概念図です。

Invoice0001 Start Workflow Execution Schedule Verify Order Start Verify Order Activity Complete Verify Order Activity Schedule Charge Credit Card Start Charge Credit Card Activity Complete Charge Credit Card Activity Schedule Ship Order Start Ship Order Activity

上記の例では、注文が出荷待ちの状態になっています。次の例では、注文が完了しています。ワークフロー履歴は累積的であるため、新しいイベントが追加されます。

Invoice0001 Start Workflow Execution Schedule Verify Order Start Verify Order Activity Complete Verify Order Activity Schedule Charge Credit Card Start Charge Credit Card Activity Complete Charge Credit Card Activity Schedule Ship Order Start Ship Order Activity Complete Ship Order Activity Schedule Record Order Completion Start Record Order Completion Activity Complete Record Order Completion Activity Close Workflow

プログラムでは、ワークフロー実行履歴に関するイベントは、JavaScript Object Notation (JSON) のオブジェクトとして表されます。履歴自体は、これらのオブジェクトの JSON 配列です。各イベントには次のものがあります。

さらに、各イベントの型には、その型に適した独自の記述属性セットがあります。たとえば、ActivityTaskCompleted イベントには、アクティビティタスクがスケジュールされた時間およびそのアクティビティタスクが開始された時間に対応するイベントの ID を含む属性と、結果データを保持する属性が含まれています。

GetWorkflowExecutionHistory アクションを使用して、ワークフロー実行履歴の現在の状態のコピーを取得できます。さらに、Amazon SWF とワークフローのディサイダーとのインタラクションの一環として、ディサイダーは履歴のコピーを定期的に受信します。

以下は、JSON 形式でのワークフロー実行履歴の例です。

[ { "eventId": 11, "eventTimestamp": 1326671603.102, "eventType": "WorkflowExecutionTimedOut", "workflowExecutionTimedOutEventAttributes": { "childPolicy": "TERMINATE", "timeoutType": "START_TO_CLOSE" } }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 10, "eventTimestamp": 1326670566.124, "eventType": "DecisionTaskScheduled" }, { "activityTaskTimedOutEventAttributes": { "details": "Waiting for confirmation", "scheduledEventId": 8, "startedEventId": 0, "timeoutType": "SCHEDULE_TO_START" }, "eventId": 9, "eventTimestamp": 1326670566.124, "eventType": "ActivityTaskTimedOut" }, { "activityTaskScheduledEventAttributes": { "activityId": "verification-27", "activityType": { "name": "activityVerify", "version": "1.0" }, "control": "digital music", "decisionTaskCompletedEventId": 7, "heartbeatTimeout": "120", "input": "5634-0056-4367-0923,12/12,437", "scheduleToCloseTimeout": "900", "scheduleToStartTimeout": "300", "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 8, "eventTimestamp": 1326670266.115, "eventType": "ActivityTaskScheduled" }, { "decisionTaskCompletedEventAttributes": { "executionContext": "Black Friday", "scheduledEventId": 5, "startedEventId": 6 }, "eventId": 7, "eventTimestamp": 1326670266.103, "eventType": "DecisionTaskCompleted" }, { "decisionTaskStartedEventAttributes": { "identity": "Decider01", "scheduledEventId": 5 }, "eventId": 6, "eventTimestamp": 1326670161.497, "eventType": "DecisionTaskStarted" }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 5, "eventTimestamp": 1326668752.66, "eventType": "DecisionTaskScheduled" }, { "decisionTaskTimedOutEventAttributes": { "scheduledEventId": 2, "startedEventId": 3, "timeoutType": "START_TO_CLOSE" }, "eventId": 4, "eventTimestamp": 1326668752.66, "eventType": "DecisionTaskTimedOut" }, { "decisionTaskStartedEventAttributes": { "identity": "Decider01", "scheduledEventId": 2 }, "eventId": 3, "eventTimestamp": 1326668152.648, "eventType": "DecisionTaskStarted" }, { "decisionTaskScheduledEventAttributes": { "startToCloseTimeout": "600", "taskList": { "name": "specialTaskList" } }, "eventId": 2, "eventTimestamp": 1326668003.094, "eventType": "DecisionTaskScheduled" } ]

ワークフローの実行履歴に表示できるさまざまなタイプのイベントの詳細なリストについては、「Amazon Simple Workflow Service API Reference」(Amazon Simple Workflow ServiceAPIリファレンス) の「HistoryEvent data type」(HistoryEvent データ型) を参照してください。

Amazon SWF では、実行が終了してから設定可能な日数の間、すべてのワークフロー実行の完全な履歴が保存されます。ワークフロー履歴の保持期間と呼ばれるこの期間は、ワークフローのドメインを登録するときに指定されます。ドメインについては、このセクションの後半で詳しく説明します。