Azure Scheduler ジョブを Azure Logic Apps に移行する

重要

Azure Logic Apps は、2022 年 1 月 31 日に完全に廃止された Azure Scheduler に取って代わりました。 この記事の手順に従って、ワークフローとして Azure Logic Apps に再作成することによって、Azure Scheduler ジョブを移行してください。 Azure portal で Azure Scheduler を使用できなくなります。 Azure Scheduler REST APIAzure Scheduler PowerShell コマンドレットは機能しなくなります。

このガイドでは、Azure Scheduler ではなく Azure Logic Apps を使用して自動化されたワークフローを作成することで、1 回限りのジョブと定期的なジョブをスケジュール設定する方法を説明します。 Azure Logic Apps を使用してスケジュールされたジョブを作成すると、次のメリットが得られます。

  • ビジュアル デザイナーを使用してジョブを構築し、Azure Blob Storage、Azure Service Bus、Office 365 Outlook、SAP などの 1000 を超えるすぐに使用できるコネクタから選択します。

  • スケジュールされた各ワークフローを最上級の Azure リソースとして管理します。 各ロジック アプリは個別の Azure リソースであるため、ジョブ コレクションの概念について心配する必要はありません。

  • 1 つのロジック アプリ ワークフローを使用して、複数の 1 回限りのジョブを実行します。

  • タイム ゾーンをサポートし、夏時間 (DST) に合わせて自動調整されるスケジュールを設定します。

詳細については、「Azure Logic Apps とは何か」を参照してください。あるいは、次のいずれかの手順に従って、最初のロジック アプリ ワークフローを作成してみてください。

前提条件

スクリプトを使用して移行する

Scheduler ジョブはそれぞれ固有であるため、Azure Logic Apps へのすべての Azure Scheduler ジョブの移行に 1 つで対応できるツールは存在しません。 ただし、このスクリプトを編集することにより、ニーズを満たすことができます。

1 回限りのジョブをスケジュール設定する

ロジック アプリ ワークフローを 1 つだけ作成して、複数の 1 回限りのジョブを実行できます。

  1. Azure portal で、ロジック アプリ リソースと空のワークフローを開きます。

  2. こちらの一般的な手順に従って、"HTTP 要求を受信したとき" という名前の Request トリガーを追加します

  3. Request トリガーで、必要に応じて JSON スキーマを指定できます。これは、ワークフロー デザイナーが、Request トリガーへの受信呼び出しに含まれる入力の構造を理解するのに役立ち、出力をこの後のワークフローで選択しやすくします。

    [要求本文の JSON スキーマ] ボックスにスキーマを入力します。次に例を示します。

    サンプル JSON 要求スキーマを含む要求トリガーを示すスクリーンショット。

    スキーマはなくても JSON 形式のサンプル ペイロードがあれば、そのペイロードからスキーマを生成することができます。

    1. [要求] トリガーで、 [サンプルのペイロードを使用してスキーマを生成する] を選択します。

    2. 次の例のように、[サンプルの JSON ペイロードを入力するか、貼り付けます] でサンプル ペイロードを指定し、[完了] を選択します。

      サンプル JSON ペイロードを示すスクリーンショット。

      {
         "runat": "2012-08-04T00:00Z",
         "endpoint": "https://www.bing.com"
      }
      
  4. トリガーの下に、Delay until という名前の Schedule アクションを追加します

    このアクションは、指定した日時までワークフローの実行を一時停止します。次に例を示します。

  5. ワークフローを開始するタイムスタンプを入力します。

    1. [タイムスタンプ] ボックス内を選択し、動的コンテンツ リスト オプション (稲妻アイコン) を選択します。これにより、前の操作の出力を選択できるようになります。この例の場合、これは Request トリガーです。

    動的コンテンツ リストが開き、

  6. 1000 以上のすぐに使えるコネクタから選択して、実行するその他のアクションを追加できます。

    たとえば、URL に要求を送信する HTTP アクションや、Storage キュー、Service Bus キューまたは Service Bus トピックを使用するアクションを含めることができます。

  7. 操作が完了したら、デザイナーのツールバーで、 [保存] を選択します。

    初めてワークフローを保存するときに、そのワークフローの Request トリガーの URL エンドポイントが生成され、HTTP POST URL ボックスに表示されます。以下に例を示します。

    生成された要求トリガー エンドポイント URL を示すスクリーンショット。

    ワークフローで処理する入力を使用してワークフローを手動でトリガーするには、エンドポイント URL に HTTP 要求を送信します。

  8. ワークフローをテストできるように、エンドポイント URL をコピーして保存します。

ワークフローのテスト

ワークフローを手動でトリガーするには、ワークフローの Request トリガーのエンドポイント URL に HTTP 要求を送信します。 この要求で、送信する入力またはペイロードを含めます。これはスキーマを指定することで既に記述している可能性があります。 この要求は、HTTP 要求ツールとその手順を使用して送信できます。

たとえば、Request トリガーで想定されるメソッドを使用する HTTP 要求を作成して送信できます。次に例を示します。

要求メソッド URL 本文 ヘッダー
投稿 <endpoint-URL> raw

JSON(application/json)

[raw] ボックスに、要求で送信するペイロードを入力します。 : この設定によりヘッダー値が自動的に構成されます。

キー: Content-Type
: application/json

1 回限りのジョブをキャンセルする

Azure Logic Apps では、1 回限りのジョブはそれぞれ 1 つのワークフローの実行インスタンスとして実行されます。 1 回限りのジョブを手動で取り消すには、ワークフローの応答で返された x-ms-workflow-run-id ヘッダー値を見つけてコピーし、ロジック アプリに基づいて次の REST API を使用して、このワークフロー実行 ID を持つ別の HTTP 要求をワークフローのエンドポイント URL に送信します。

定期的なジョブをスケジュール設定する

  1. Azure portal で、ロジック アプリ リソースと空のワークフローを開きます。

  2. Recurrence という名前の Schedule トリガーを追加するには、次の一般的な手順に従います

  3. 必要に応じて、より詳細なスケジュールを設定します。

    詳細なスケジュール オプションの詳細については、定期的に実行されるタスクとワークフローを Azure Logic Apps で作成、実行する方法に関するページを参照してください。

  4. 1000 以上のすぐに使えるコネクタから選択して、実行するその他のアクションを追加できます。

    たとえば、URL に要求を送信する HTTP アクションや、Storage キュー、Service Bus キューまたは Service Bus トピックを使用するアクションを含めることができます。

    POST メソッドによる HTTP アクションを示すスクリーンショット。

  5. 操作が完了したら、デザイナーのツールバーで、 [保存] を選択します。

詳細設定

次のセクションでは、ジョブをカスタマイズできる別の方法について説明します。

再試行ポリシー

断続的なエラーが発生したときに、ワークフローでアクションが再実行を試行する方法を制御するために、各アクションの設定で再試行ポリシーを設定できます。

例外とエラーを処理する

Azure Sheduler では、既定のアクションが実行に失敗した場合、エラー状態に対処する代替アクションを実行できます。 Azure Logic Apps でも、同じタスクを実行することができます。 Azure Logic Apps での例外処理の詳細については、「エラーと例外の処理 - RunAfter プロパティ」を参照してください。

  1. デザイナーで、処理するアクションの上に並列分岐を追加します

  2. 代替アクションとして代わりに実行するアクションを見つけて選択します。

  3. 代替アクションで、[実行条件の構成] オプションを見つけて選択します。

  4. [に成功しました] プロパティのボックスをオフにします。 [が失敗しました][がスキップされます][がタイムアウトしました] というプロパティを選択します。

  5. 完了したら、 [完了] をクリックします。

よく寄せられる質問

Q: Azure Scheduler が廃止になったのはいつですか。
A: Azure Scheduler は 2022 年 1 月 31 日に完全に廃止されました。 一般的な更新については、Azure の更新情報 - スケジューラを参照してください。

Q: Azure Scheduler の廃止後、ジョブ コレクションとジョブはどうなりますか。
A: Azure Scheduler のすべてのジョブ コレクションとジョブの実行が停止され、システムから削除されます。

Q: Azure Scheduler のジョブを Azure Logic Apps に移行する前に、バックアップまたはその他のタスクを実行する必要がありますか。
A: ベスト プラクティスとして、作業は常にバックアップします。 Azure Scheduler ジョブを削除または無効にする前に、作成したワークフローが想定どおりに実行されていることを確認します。

Q: Azure Scheduler からスケジュールされた Azure Web ジョブはどうなりますか。
A: Web ジョブをスケジュールするのにこの方法を使用している Web ジョブでは、内部的に Azure Scheduler は使用されていません。"スケジュールが正しく機能するためには、Web サイトが Always On として構成されている必要があり、Azure Scheduler ではなく、スケジューラの内部実装であることが必要です。"影響を受ける Web ジョブは、Web Jobs API を使用して Web ジョブを実行するために Azure Scheduler を明示的に使用しているものだけです。 これらの Web ジョブは、HTTP アクションを使用してロジック アプリ ワークフローからトリガーできます。

Q: Azure Scheduler から Azure Logic Apps にジョブを移行するのに役立つツールはありますか。
A: 各 Azure Scheduler ジョブは独特なため、汎用ツールは存在しません。 ただし、ニーズに基づき、このスクリプトを編集して Azure Scheduler ジョブを Azure Logic Apps に移行することができます。

Q: Azure Scheduler ジョブを移行するためのサポートは、どこで受けられますか。
A: サポートを受けるには、いくつかの方法があります。

Azure Portal

Azure サブスクリプションに有料サポート プランがある場合は、Azure portal でテクニカル サポート要求を作成できます。 それ以外の場合は、さまざまなサポート オプションを選択できます。

  1. Azure portal のメイン メニューで、[ヘルプとサポート] を選択します。

  2. [サポート] メニューの [新しいサポート リクエスト] を選択します。 リクエストについて以下の情報を入力します。

    プロパティ
    問題の種類 [技術]
    サブスクリプション <your-Azure-subscription>
    サービス [監視 + 管理] の下で、[Scheduler] を選択します。 [Scheduler] が見つからない場合は、まず [すべてのサービス] を選択します。
  3. 必要なサポート オプションを選択します。 有料サポート プランがある場合は、[次へ] を選択します。

次のステップ