

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

# Amazon SWF でのワークフロー実行の終了
<a name="swf-dev-workflow-exec-closure"></a>

ワークフロー実行を開始すると、その実行は*開かれ*ます。開いているワークフロー実行を完了済み、キャンセル済み、失敗、またはタイムアウトとしてクローズできます。新しい実行として続行するか、終了することもできます。ワークフロー実行は、ディサイダー、ワークフローの管理者、または Amazon SWF によってクローズできます。

ワークフローのアクティビティが終了したとディサイダーが判断した場合、`[RespondDecisionTaskCompleted](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_RespondDecisionTaskCompleted.html)` アクションを使用し、`[CompleteWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CompleteWorkflowExecutionDecisionAttributes.html)` 決定を渡して、ワークフロー実行を完了済みとしてクローズする必要があります。

または、ディサイダーがワークフロー実行をキャンセル済みまたは失敗としてクローズできます。実行をキャンセルするには、ディサイダーは `RespondDecisionTaskCompleted` アクションを使用して `[CancelWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_CancelWorkflowExecutionDecisionAttributes.html)` 決定を渡す必要があります。

ディサイダーが通常の完了以外の状態になった場合、ワークフロー実行は失敗する必要があります。実行が失敗するためには、ディサイダーは `RespondDecisionTaskCompleted` アクションを使用して `[FailWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_FailWorkflowExecutionDecisionAttributes.html)` 決定を渡す必要があります。

Amazon SWF はワークフロー実行をモニタリングし、ユーザーが指定したタイムアウト設定を超えないようにします。ワークフロー実行時間がタイムアウトすると、Amazon SWF は自動的にそれをクローズします。このタイムアウト値の詳細については、「[Amazon SWF タイムアウトの種類](swf-timeout-types.md)」セクションを参照してください。

また、ディサイダーは、実行をクローズし、`RespondDecisionTaskCompleted` アクションを使用して `[ContinueAsNewWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_ContinueAsNewWorkflowExecutionDecisionAttributes.html)` 決定を渡すことにより、新しい実行として論理的に続行することもできます。これは、時間の経過とともに履歴が大きくなりすぎる場合がある、長時間実行されるワークフロー実行には有効な戦略です。

最後に、Amazon SWF コンソールから、または `[TerminateWorkflowExecution](https://docs.aws.amazon.com/amazonswf/latest/apireference/API_TerminateWorkflowExecution.html)` API を使用してプログラムで、ワークフロー実行を直接終了できます。終了により、ワークフロー実行が強制クローズされます。ディサイダーはワークフロー実行のクローズを管理できるため、終了よりもキャンセルが推奨されます。

Amazon SWF は、実行が特定のサービス定義の制限を超えた場合、ワークフローの実行を終了します。Amazon SWF は、親ワークフローが終了し、該当する子ポリシーで子ワークフローも終了する必要があることが示されている場合、子ワークフローを終了します。