about_Checkpoint-Workflow

適用対象: Windows PowerShell 3.0, Windows PowerShell 4.0, Windows PowerShell 5.0

トピック

about_Checkpoint-Workflow

概要

ワークフローにチェックポイントを配置する Checkpoint-Workflow アクティビティについて説明します。

詳細説明

Checkpoint-Workflow アクティビティはチェックポイントを配置します。チェックポイントには、ワークフローの状態とデータが保存されます。ワークフローが一時停止または中断された場合、再起動する必要はなく、最新のチェックポイントから再開できます。

Checkpoint-Workflow アクティビティは、ワークフローでのみ有効です。

構文

    Workflow <Verb-Noun>
    {
        Checkpoint-Workflow
    }

Checkpoint-Workflow アクティビティでは、共通パラメーターやワークフロー共通パラメーターなど、どのパラメーターも使用できません。

Checkpoint-Activity チェックポイントは、CmdletBinding ステートメントまたは Param ステートメントの後のワークフローで任意の場所に配置できます。ただし、チェックポイントを配置するときは、データを収集し、ワークフローを実行しているコンピューター上のディスクにデータを書き込むパフォーマンス コストを考慮してください。

ワークフローが中断された場合に、チェックポイントの状態とデータをディスクに書き込む時間が、ワークフローの一部分を再度実行するのにかかる時間より小さくなるようにします。

ワークフローを再起動ではなく再開できるように、重要な手順の後にチェックポイントを配置することを検討してください。たとえば、べき等でないコマンドの後にチェックポイントを配置します。

チェックポイントについて

チェックポイントは、変数の現在の値とそのポイントまでに生成されたすべての出力を含む、ワークフローの現在の状態のスナップショットです。スナップショットはディスクに保存されます。

意図的かどうかに関係なくワークフローが中断された場合、Windows PowerShell® ワークフローは最新のチェックポイントのデータを使用して、自動的にワークフローを回復し、再開します。

AsJob ワークフロー共通パラメーターなどを使用することによって、ジョブとしてワークフローを実行すると、Remove-Job コマンドレットの使用などによってジョブが削除されるまで、ワークフローのチェックポイントは保持されます。それ以外の場合は、ワークフローが完了すると、ワークフローのチェックポイントは削除されます。

その他のチェックポイント処理の手法

Windows PowerShell ワークフローは、Checkpoint-Workflow アクティビティ以外にも、次のようなチェックポイント処理の手法をサポートしています。

        -- PSPersist workflow common parameter
        -- PSPersist activity common parameter
        -- PSPersistPreference variable (in a workflow)

ワークフローへのチェックポイントの追加の詳細については、ワークフローにチェックポイントを追加する方法に関するページを参照してください。

次のワークフローでは、データを共有する実行時間の長い関数とスクリプトを完了した後に、Checkpoint-Workflow アクティビティが呼び出されます。

        Workflow Test-Workflow
        {
            $a = Invoke-LongRunningFunction
            InlineScript { \\Server\Share\Get-DataPacks.ps1 $Using:a}    
            Checkpoint-Workflow
    
            Invoke-LongRunningFunction
            {
                ...
            }
        }

関連項目

ワークフローにチェックポイントを追加する方法 (https://go.microsoft.com/fwlink/?LinkId=261993)