監視タスクによる更新されたファイルの追跡

Azure Automation では、PowerShell Runbook で監視タスクを使用して、イベントを検索し、アクションをトリガーします。 監視タスクには、監視とアクションという 2 つの部分が含まれています。 監視 Runbook は、監視タスクで定義された間隔で実行され、データをアクション Runbook に出力します。

Note

Watcher タスクは、21Vianet によって運営される Microsoft Azure でサポートされるようになりました。

重要

2020 年 5 月から、イベントの監視、定期的なタスクのスケジュール設定、およびアクションのトリガーを行う方法として、Azure Logic Apps を使用することが推奨され、サポートされるようになりました。 「Azure Logic Apps で自動化された定期的なタスク、プロセス、ワークフローのスケジュールを設定して実行する」を参照してください。

この記事では、ディレクトリへの新しいファイルの追加を監視する監視タスクの作成手順について説明します。 以下の方法について説明します。

  • 監視 Runbook をインポートする
  • Automation 変数を作成する
  • アクション Runbook を作成する
  • 監視タスクを作成する
  • 監視をトリガーする
  • 出力を確認する

前提条件

この記事を完了するには、以下が必要です。

監視 Runbook をインポートする

この記事では、ディレクトリ内の新規ファイルを検索する監視 Runbook と呼ばれる監視 Runbook を使用して、ディレクトリ内の新規ファイルを検索します。 この監視 Runbook は、フォルダー内のファイルに対する既知の最終書き込み時刻を取得し、この基準時刻より新しいファイルを監視します。

次の手順を使用して、この Runbook をポータルから Automation アカウントにインポートできます。

  1. Azure portal にサインインします。
  2. Automation アカウントを検索して選択します。
  3. [Automation アカウント] ページで、リストから自分の Automation アカウントの名前を選択します。
  4. 左ウィンドウで、[プロセス オートメーション] の下の [Runbook ギャラリー] を選択します。
  5. [ソース] ドロップダウン リスト内で GitHub が選択されていることを確認します。
  6. 監視 Runbook を検索します。
  7. [Watcher runbook that looks for new files in a directory]\(ディレクトリ内の新規ファイルを検索する監視 Runbook\) を選択し、詳細ページ上で [インポート] を選択します。
  8. Runbook の名前と説明 (省略可能) を入力して [OK] をクリックし、Automation アカウントにこの Runbook をインポートします。 ウィンドウ右上のペイン内に、インポート成功というメッセージが表示されます。
  9. インポートされた Runbook は、左側のウィンドウから [Runbook] を選択したときに指定した名前の下のリストに表示されます。
  10. Runbook をクリックし、Runbook の詳細ページで [編集] を選択して、[公開] をクリックします。 プロンプトが表示されたら、[はい] をクリックして Runbook を公開します。

この Runbook は Azure Automation GitHub 組織からダウンロードすることもできます。

  1. Azure Automation GitHub 組織ページの Watch-NewFile.ps1 に移動します。
  2. GitHub から Runbook をダウンロードするには、ページの右側にある [Code]\(コード\) を選択し、[Download ZIP]\(ZIP のダウンロード\) を選択して、zip ファイル内のコード全体をダウンロードします。
  3. コンテンツを抽出し、Runbook をインポートします。

Automation 変数を作成する

Automation 変数を使用して、上述の Runbook が各ファイルから読み取って保存するタイムスタンプを格納します。

  1. [共有リソース][変数] を選択し、[+ 変数の追加] をクリックします。

  2. 名前に「Watch-NewFileTimestamp」と入力します。

  3. 型には DateTime を選択します。 既定では、現在の日付と時刻が指定されます。

    Screenshot of creating a new variable blade.

  4. [作成] をクリックして Automation 変数を作成します。

アクション Runbook を作成する

監視タスクで、アクション Runbook を使用して、監視 Runbook から渡されたデータを操作します。 事前定義済みアクション Runbook を、Azure portal または Azure Automation GitHub 組織からインポートする必要があります。

この Runbook を Azure portal から Automation アカウントにインポートできます。

  1. Azure portal にサインインします。
  2. Automation アカウントを検索して選択します。
  3. [Automation アカウント] ページで、リストから自分の Automation アカウントの名前を選択します。
  4. 左ウィンドウで、[プロセス オートメーション] の下の [Runbook ギャラリー] を選択します。
  5. [ソース] ドロップダウン リスト内で GitHub が選択されていることを確認します。
  6. 監視アクションを検索して [Watcher action that processes events triggered by a watcher runbook]\(監視 Runbook でトリガーされたイベントを処理する監視アクション\) を選択し、[インポート] をクリックします。
  7. 必要に応じて、インポート ページで Runbook の名前を変更し、[OK] をクリックして Runbook をインポートします。 ブラウザー右上の通知ウィンドウ内に、インポート成功というメッセージが表示されます。
  8. Automation アカウント ページに移動し、左側の [Runbook] をクリックします。 新しい Runbook は、前の手順で指定した名前の下に表示されます。 Runbook をクリックし、Runbook の詳細ページで [編集] を選択して、[公開] をクリックします。 プロンプトが表示されたら、[はい] をクリックして Runbook を公開します。

Azure Automation GitHub 組織からダウンロードすることによってアクション Runbook を作成するには:

  1. Azure Automation GitHub 組織ページの Process-NewFile.ps1 に移動します。
  2. GitHub から Runbook をダウンロードするには、ページの右側にある [Code]\(コード\) を選択し、[Download ZIP]\(ZIP のダウンロード\) を選択して、zip ファイル内のコード全体をダウンロードします。
  3. コンテンツを抽出し、Runbook をインポートします。

監視タスクを作成する

この手順では、前述のセクションで定義した監視 Runbook とアクション Runbook を参照する監視タスクを構成します。

  1. Automation アカウントに移動して、[プロセスの自動化][監視タスク] を選択します。

  2. [監視タスク] ページを選択して、[+ 監視タスクの追加] をクリックします。

  3. 名前として「WatchMyFolder」を入力します。

  4. [監視を構成] を選択し、Watch-NewFile Runbook を選びます。

  5. 各パラメーターの値を次のように入力します。

    • FOLDERPATH - 新しいファイルが作成される、ハイブリッド Runbook ワーカー上のフォルダー (たとえば、d:\examplefiles)。
    • EXTENSION - 構成の拡張機能。 すべてのファイル拡張子を処理するために、空白のままにします。
    • RECURSE - 再帰的操作。 この値は既定値のままにします。
    • RUN SETTINGS - Runbook を実行するための設定。 ハイブリッド ワーカーを選択します。
  6. [OK] をクリックし、[監視] ページに戻るように選択します。

  7. [アクションを構成] を選択し、Process-NewFile Runbook を選びます。

  8. 各パラメーターの値を次のように入力します。

    • EVENTDATA - イベント データ。 空白のままにします。 監視 Runbook からデータが渡されます。
    • Run Settings - Runbook を実行するための設定。 この Runbook は Azure Automation で実行するので、Azure のままにします。
  9. [OK] をクリックし、[監視] ページに戻るように選択します。

  10. [OK] をクリックして監視タスクを作成します。

    Screenshot of configuring watcher action in the Azure portal.

監視をトリガーする

監視タスクが期待どおりに動作することを確実にするために、次の説明に従ってテストを実行する必要があります。

  1. ハイブリッド Runbook ワーカーにリモート接続します。
  2. PowerShell を開き、テスト対象のフォルダーにテスト ファイルを作成します。
New-Item -Name ExampleFile1.txt

次の例で、想定される出力を示します。

    Directory: D:\examplefiles


Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       12/11/2017   9:05 PM              0 ExampleFile1.txt

出力を確認する

  1. Automation アカウントに移動して、[プロセスの自動化][監視タスク] を選択します。

  2. 監視タスク WatchMyFolder を選択します。

  3. [ストリーム][監視ストリームを表示] をクリックして、監視によって新しいファイルが検出され、アクション Runbook が開始されたことを確認します。

  4. アクション Runbook ジョブを表示するために、[監視アクション ジョブを表示] をクリックします。 各ジョブを選択すると、ジョブの詳細を確認できます。

    Screenshot of a watcher action jobs from the Azure portal.

新しいファイルが検出された場合に想定される出力は、次の例のようになります。

Message is Process new file...

Passed in data is @{FileName=D:\examplefiles\ExampleFile1.txt; Length=0}

次のステップ

独自の Runbook の作成の詳細については、PowerShell Runbook の作成に関する記事を参照してください。