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 などの数百のサービスのすぐに使用できるコネクタを使用して、ジョブを構築します。

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

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

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

詳細については、「Azure Logic Apps とは」を参照するか、「クイック スタート: マルチテナント Azure Logic Apps で従量課金ロジック アプリ ワークフローの例を作成する」に従って、初めてのロジック アプリ ワークフローを作成してみてください。

前提条件

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

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

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

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

  1. Azure portal で、デザイナーを使用して空のロジック アプリ ワークフローを作成します。

    基本的な手順については、従量課金ロジック アプリ ワークフローの例の作成に関するページをご覧ください。

  2. デザイナーの検索ボックスに、「when a http request」を入力し、要求トリガーを検索します。 トリガーの一覧から、[HTTP 要求の受信時] というトリガーを選択します。

    Screenshot showing the Azure portal and the workflow designer with the

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

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

    Screenshot showing the Request trigger with a sample JSON request schema.

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

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

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

      Screenshot showing a sample JSON payload.

      {
         "runat": "2012-08-04T00:00Z",
         "endpoint": "https://www.bing.com"
      }
      
  4. トリガーで、[次のステップ] を選択します。

  5. デザイナーの検索ボックスに、「delay until」と入力します。 [アクション] 一覧から、[延期期限] というアクションを選択します。

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

    Screenshot showing the

  6. ロジック アプリのワークフローを開始するタイムスタンプを入力します。

    [タイムスタンプ] ボックス内をクリックすると、動的コンテンツ リストが表示され、必要に応じてトリガーから出力を選択できるようになります。

    Screenshot showing the

  7. 数百単位のすぐに使えるコネクタから選択して、実行するその他のアクションを追加できます。

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

    Screenshot showing the

  8. 完了したら、ロジック アプリ ワークフローを保存します。

    Screenshot showing the designer toolbar with

    初めてロジック アプリ ワークフローを保存するときに、そのロジック アプリ ワークフローの要求トリガーの URL エンドポイントが [HTTP POST の URL] ボックスに表示されます。 ロジック アプリ ワークフローをトリガーし、処理するためにワークフローに入力を送信するには、生成された URL を呼び出し先として要求を送信します。次に例を示します。

    Screenshot showing the generated Request trigger endpoint URL.

  9. 後で手動でロジック アプリ ワークフローをトリガーする要求を送信できるように、エンドポイント URL をコピーして保存します。

1 回限りのジョブを開始する

1 回限りのジョブを手動で実行またはトリガーするには、ロジック アプリの要求トリガーのエンドポイント URL への呼び出しを送信します。 この呼び出しでは、送信する入力またはペイロードを指定します。これはスキーマを指定することで既に記述している可能性があります。

たとえば、Postman アプリを使用して、このサンプルと同じような設定で POST 要求を作成し、[送信] を選択して要求を行うことができます。

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

JSON(application/json)

[raw] ボックスに、要求で送信するペイロードを入力します。

: この設定によりヘッダー値が自動的に構成されます。

キー: Content-Type
: application/json

Screenshot showing the request to send for manually triggering your logic app workflow.

呼び出しを送信すると、ロジック アプリ ワークフローからの応答が [本文] タブの [raw] ボックスの下に表示されます。

重要

後でジョブを取り消す場合は、[ヘッダー] タブを選択します。応答で x-ms-workflow-run-id ヘッダー値を見つけてコピーします。

Screenshot showing the response.

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

Azure Logic Apps では、1 回限りのジョブはそれぞれ 1 つのワークフローの実行インスタンスとして実行されます。 1 回限りのジョブをキャンセルするには、Azure Logic Apps REST API でワークフロー実行 - キャンセルを使用できます。 トリガーへの呼び出しを送信するときに、ワークフロー実行 ID を指定します。

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

  1. Azure portal で、空のロジック アプリ ワークフローをデザイナーに作成します。

    基本的な手順については、マルチテナント Azure Logic Apps での従量課金ロジック アプリ ワークフローの例の作成に関するページをご覧ください。

  2. デザイナーの検索ボックスに、「recurrence」と入力します。 [トリガー] の一覧から、[繰り返し] というトリガーを選択します。

    Screenshot showing the Azure portal and workflow designer with the

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

    Screenshot showing the

    スケジュール オプションの詳細については、「定期的に実行されるタスクとワークフローを Azure Logic Apps で作成、実行する」をご覧ください。

  4. 数百単位のすぐに使えるコネクタから選択し、実行するその他のアクションを追加できます。 トリガーで、[次のステップ] を選択します。 目的のアクションを探して選択します。

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

    Screenshot showing an H T T P action with a POST method.

  5. 完了したら、ロジック アプリ ワークフローを保存します。

    Screenshot showing the designer toolbar with the

詳細設定

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

再試行ポリシー

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

  1. アクションの省略記号 ([...]) メニューを開き、[設定] を選択します。

    Screenshot showing an action's

  2. 目的の再試行ポリシーを選択します。 各ポリシーの詳細については、「再試行ポリシー」を参照してください。

    Screenshot showing the selected

例外とエラーを処理する

Azure Sheduler では、既定のアクションが実行に失敗した場合、エラー状態に対処する代替アクションを実行できます。 Azure Logic Apps でも、同じタスクを実行することができます。

  1. ワークフロー デザイナーで、処理したいアクションの上で、ポインターをステップ間の矢印の上に移動し、[並列分岐の追加] を選択します。

    Screenshot showing

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

    Screenshot showing the selected parallel action.

  3. 代替アクションで、省略記号 ([...]) メニューを開き、[実行条件の構成] を選択します。

    Screenshot showing

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

    Screenshot showing the selected

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

例外処理の詳細については、エラーと例外処理 - RunAfter プロパティに関するセクションを参照してください。

よく寄せられる質問

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. 必要なサポート オプションを選択します。 有料サポート プランがある場合は、[次へ] を選択します。

次のステップ