次の方法で共有


Azure Logic Apps で Recurrence トリガーを使用して繰り返しワークフローをスケジュール設定および実行する

適用対象: Azure Logic Apps (従量課金 + Standard)

スケジュールに従ってワークフローを開始して実行するには、最初の手順として汎用の 繰り返し トリガーを使用します。 ワークフローを開始する日付、時刻、タイム ゾーン、およびそのワークフローを反復処理するための繰り返しを設定できます。 次の一覧に、このトリガーがサポートするいくつかのパターンを、より高度な繰り返しや複雑なスケジュールと共に示します。

  • 特定の日時に実行し、 n 秒、分、時間、日、週、または月ごとに繰り返します。

  • 直ちに実行し、n 秒、分、時間、日、週、または月ごとに繰り返す。

  • 直ちに実行し、1 つ以上の特定の時刻 (午前 8 時と午後 5 時など) に毎日繰り返す。

  • 直ちに実行し、毎週特定の曜日 (土曜日と日曜日など) に繰り返す。

  • 直ちに実行し、毎週特定の曜日の特定の時刻 (月曜日から金曜日の午前 8 時と午後 5 時など) に繰り返す。

Note

[設定時刻 (時間)][設定曜日] などの高度なスケジュール設定オプションが使用可能であり、繰り返しスライディング ウィンドウ トリガーのような組み込みのポーリング トリガーとの組み合わせでのみ使用できます。これらのトリガーは、Azure Logic Apps ランタイムで直接実行されます。 Azure で Microsoft が管理、ホスト、および実行するコネクタの場合、ポーリング トリガーは、高度なスケジュール オプションではなく、 間隔頻度 の値のみを使用して次の繰り返しを計算します。

繰り返しトリガーは特定のサービスに関連付けられていないため、従量課金ロジック アプリワークフローや標準ロジック アプリステートフル ワークフローなど、ほぼすべてのワークフローでトリガーを使用できます。 このトリガーは現在、標準ロジック アプリ "ステートレス" ワークフローでは使用できません。

繰り返しトリガーは、組み込みのスケジュール コネクタの一部であり、Azure Logic Apps ランタイムでネイティブに実行されます。 組み込みのスケジュール トリガーとアクションの詳細については、Azure Logic Apps を使用した定期的な自動タスク、ワークフローのスケジュールと実行に関するページを参照してください。

Prerequisites

繰り返しトリガーを追加する

従量課金または Standard どちらのワークフローを使用しているかに基づき、対応する手順に従ってください:

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

  2. 繰り返しという名前の付いた組み込みトリガーのスケジュールを追加するには、次の一般的な手順に従います。

  3. 繰り返しの間隔と頻度を設定します。 この例では、これらのプロパティを設定して、ワークフローを毎週実行します。たとえば、次のようになります。

    [繰り返し] トリガーの間隔と頻度を示す従量課金ワークフロー デザイナーのスクリーンショット。

    Property JSON での名前 Required タイプ Description
    Interval interval Yes Integer ワークフローの実行間隔を、[頻度] に指定された単位に基づいて表す正の整数。 間隔の最小値と最大値は次のとおりです:

    - Month (月): 1 ~ 16 か月
    - Week (週): 1 ~ 71 週
    - Day (日): 1 ~ 500 日
    - hour: 1 ~ 12,000 時間
    - minute: 1 ~ 72,000 分
    - second: 1 ~ 9,999,999 秒

    たとえば間隔が 6 で、頻度が "月" である場合は、繰り返しは 6 か月ごとになります。
    Frequency frequency Yes String 繰り返しの時間の単位。のいずれかになります。

    重要: 、または の頻度を選択し、将来の開始日と時刻を指定する場合は、繰り返しを事前に設定してください。 そうしないと、ワークフローで最初の繰り返しがスキップされる場合があります。

    - : 少なくとも 24 時間前に毎日の繰り返しを設定します。

    - : 少なくとも 7 日前に週単位の繰り返しを設定します。

    - : 少なくとも 1 か月前に毎月の繰り返しを設定します。
    タイム ゾーン timeZone No String このトリガーは UTC オフセットを受け入れないので、開始時刻を指定した場合にのみ適用されます。 適用するタイム ゾーンを選択してください。 詳細については、「Default Time Zones (既定のタイム ゾーン)」を参照してください。
    開始時刻 startTime No String 開始日と時刻を指定します。これには、最大で 49 年先の時刻を指定でき、また UTC の日付と時刻の形式 (ただし、UTC オフセットを除く) で日付と時刻に関する ISO 8601 規格に従っている必要があります。

    YYYY-MM-DDThh:mm:ss (タイム ゾーンを選択した場合)

    -or-

    YYYY-MM-DDThh:mm:ssZ (タイム ゾーンを選択しなかった場合)

    たとえば、2024 年 9 月 18 日午後 2:00 を希望する場合は、"2024-09-18T8:00:00" と指定し、太平洋標準時などのタイム ゾーンを選択します。 または、タイム ゾーンなしで「2024-09-18T8:00:00Z」と指定します。

    大事な: タイム ゾーンを選択しない場合は、末尾にスペースなしで文字 "Z" を追加する必要があります。 この "Z" は、UTC オフセットを持つ UTC 時刻形式を示 します。 タイム ゾーンの値を選択した場合は、 開始時刻 の値の末尾に "Z" を追加する必要はありません。 この作業を行った場合、"Z" は UTC 時刻形式を示すため、Azure Logic Apps ではタイム ゾーンの値が無視されます。

    単純なスケジュールでは、開始時刻と最初の実行時刻が一致するのに対して、複雑なスケジュールでは、トリガーが作動するのは開始時刻以降となります。 開始日時の使用方法を具体的に教えてください

    [週] と [] のどちらを選択するかに基づいて、次のプロパティを使用できます。

    Property JSON での名前 Required タイプ Description
    設定曜日 weekDays No 文字列または文字列配列 [週] を選択した場合は、ワークフローを実行する 1 日以上を選択できます。月曜日火曜日水曜日木曜日金曜日土曜日日曜日
    設定時刻 (時間) hours No 整数または整数配列 [日] または [週] を選択した場合は、ワークフローを実行する 1 日の時間として 0 から 23 までの 1 つ以上の整数を選択できます。 たとえば、 101214 を指定すると、その日の時間に対して午前 10 時、午後 12 時、午後 2 時が表示されます。

    : 既定では、1 日の分数は、繰り返しの開始時に基づいて計算されます。 特定の時刻 (たとえば、午前 10:00、午後 12:00、午後 2:00) を設定するには、[設定時刻 (分)] という名前のプロパティを使用してこれらの値を指定します。
    設定時刻 (分) minutes No 整数または整数配列 [日] または [週] を選択した場合は、ワークフローを実行する時間の分として 0 から 59 までの 1 つ以上の整数を選択できます。

    たとえば、分マークとして 30 を指定し、1 日の時間に対して前の例を使用すると、午前 10 時 30 分、午後 12 時 30 分、午後 2 時 30 分を取得できます。

    : トリガーされた実行のタイムスタンプが、スケジュールされた時刻と最大 1 分異なる場合があります。 後続のアクションに対し、タイムスタンプをスケジュールどおりに正確に渡す必要がある場合は、テンプレート式を使用してタイムスタンプを適宜変更してください。 詳細については、式の日付と時刻の関数に関するページを参照してください。
  4. 繰り返しトリガーを使用する場合は、次の考慮事項を確認します。

    • 特定の 開始日時を指定しない限り、トリガーの繰り返しの設定にもかかわらず、ワークフローを保存するかロジック アプリ リソースをデプロイすると、最初の繰り返しが直ちに実行されます。 この動作を回避するには、最初の繰り返しを実行する開始日時を指定してください。

    • 将来の繰り返しを実行する特定時刻など、その他の詳細なスケジュール オプションを指定していない場合、それらの繰り返しは前回の実行時刻に基づいて行われます。 その結果、ストレージ呼び出し中の待機時間などの要因によって、それらの繰り返しの開始時刻がずれる可能性があります。

    • ワークフローで繰り返しを見逃す事態を防止するには (特に頻度が日単位以上のとき)、以下のオプションを試してください。

      • 繰り返しの開始日時と、後続の繰り返しを実行する特定の時刻を指定します。 [設定時刻 (時間)][設定時刻 (分)] というプロパティを使用できます。これらを使用できるのは、頻度が [日][週] の場合のみです。

      • 従量課金ロジック アプリ ワークフローの場合は、Recurrence (繰り返し) トリガーではなく Sliding Window (スライディング ウィンドウ) トリガーを使用します。

    • ARM テンプレートを使用して 繰り返し トリガーを持つ無効な従量課金ワークフローをデプロイする場合、デプロイ前に 開始時刻 パラメーターを設定しない限り、ワークフローを有効にするとトリガーが即座に発生します。

    たとえば、今日が 2024 年 9 月 4 日の水曜日だとします。 次の 繰り返し トリガーは、指定された開始日と時刻 (2024 年 9 月 18 日水曜日の太平洋時間 8:00 AM) よりも 早く 起動しません。 ただし、繰り返しのスケジュールは月曜日の 10:30 AM、12:30 PM、2:30 PM にのみ設定されています。 最初にトリガーが作動してワークフロー インスタンスが作成される時刻は月曜日の午前 10 時 30 分となります。 開始時刻の動作について詳しくは、開始時刻の例を参照してください。

    その後は、同じ日の 12:30 PM と 2:30 PM に実行されます。 繰り返しのたびに、ワークフロー インスタンスが新しく作成されます。 その後は、次の月曜日に再び、スケジュール全体が最初から繰り返されます。 その他の繰り返しの例

    従量課金ワークフローと、詳細スケジュールを使用した繰り返しトリガーの例を示すスクリーンショット。

    Note

    トリガーには、頻度として [日 ] または [週 ] を選択した場合にのみ、指定した繰り返しのプレビューが表示されます。

  5. 次に、他のアクションを使用してワークフローの作成を続けます。

ワークフロー定義 - 繰り返し

選択したオプションと共に Recurrence トリガー定義がどのように表示されるかを確認するには、従量課金ロジック アプリと標準ロジック アプリ (ステートフルのみ) でのワークフローの基になる JSON 定義を確認します。

ロジック アプリが従量課金か標準かに基づいて、次のいずれかのオプションを選択します。

  • 使用: デザイナー ツールバーで [コード ビュー] を選択します。 デザイナーに戻すには、コード ビュー エディターのツール バーで [ デザイナー] を選択します。

  • 標準: ワークフロー メニューで、[ コード ビュー] を選択します。 デザイナーに戻すには、ワークフロー メニューの [デザイナー] を選択します。

次の例は、ワークフローの基になる JSON 定義に 繰り返し トリガー定義がどのように表示されるかを示しています。

"triggers": {
   "Recurrence": {
      "type": "Recurrence",
      "recurrence": {
         "frequency": "Week",
         "interval": 1,
         "schedule": {
            "hours": [
               10,
               12,
               14
            ],
            "minutes": [
               30
            ],
            "weekDays": [
               "Monday"
            ]
         },
         "startTime": "2024-09-18T8:00:00Z",
         "timeZone": "Pacific Standard Time"
      }
   }
}

Note

繰り返しトリガーの定義では、繰り返し条件に式またはパラメーター参照が表示されると、evaluatedRecurrence プロパティがrecurrence プロパティと共に表示されます。 evaluatedRecurrence プロパティは、式またはパラメーター参照からの評価された値を表します。 繰り返し条件で式またはパラメーター参照が指定されていない場合、evaluatedRecurrence および recurrence プロパティは同じです。

次の例は、各月の最終日にトリガーが 1 回だけ実行されるようにトリガー定義を更新する方法を示しています。

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

月の最終日に 1 回実行する

このタスクでは、次の例を使用して、デザイナーではなくコード ビューを使用して、ワークフローの基になる JSON 定義の 繰り返し トリガーを編集する必要があります。

"triggers": {
    "Recurrence": {
        "recurrence": {
            "frequency": "Month",
            "interval": 1,
            "schedule": {
                "monthDays": [-1]
            }
        },
        "type": "Recurrence"
    }
}

トリガーの繰り返しのシフトやずれ (夏時間)

Azure Logic Apps では、ジョブをスケジュールするために、処理するメッセージをキューに入れ、最後のジョブが実行された UTC 時刻と、次のジョブの実行がスケジュールされている UTC 時刻に基づいて、そのメッセージが使用可能になる時刻を指定します。 トリガーで夏時間 (DST) を優先する場合は、 必ずタイム ゾーンを選択してください。 そうすることで、ロジック アプリの UTC 時刻も、季節の時間変化に合わせてシフトされます。 繰り返しのトリガーは、指定したタイム ゾーンを含め、設定したスケジュールに従います。

タイムゾーンを選択しないと、トリガーが実行されるタイミングが夏時間 (DST) イベントの影響を受ける可能性があります。 たとえば、開始時刻が DST の開始時には 1 時間先に、DST の終了時には 1 時間前にシフトされます。 ただし、一部の時間枠では時間がシフトされるときに問題が発生することがあります。 詳細と例については、夏時間と標準時間での繰り返しに関する記事を参照してください。