すべてのプロダクト
Search
ドキュメントセンター

CloudFlow:時間ベースのスケジュールの作成

最終更新日:Jun 22, 2026

Serverless Workflow では、cron 式を設定することで、ワークフローの実行をスケジュールできます。このトピックでは、Serverless Workflow の時間ベースのスケジュールを作成する方法について説明します。

前提条件

フローが存在する必要があります

コンソールでのスケジュールの作成

  1. Serverless Workflow コンソールにログインします。

  2. [フロー] ページに移動します。フローのリストで、対象フローの [フロー名] をクリックします。

  3. [フロー] ページで、[時間ベースのスケジュール] タブをクリックし、[時間ベースのスケジュール管理] エリアで [時間ベースのスケジュールを作成] をクリックします。

  4. [時間ベースのスケジュールを作成] パネルでパラメーターを入力し、[OK] をクリックします。

    パラメーター

    操作

    時間ベースのスケジュール名

    時間ベースのスケジュールのカスタム名を入力します。

    schedule-test

    トリガー時間の設定

    スケジューリングメソッドを選択し、時間ルールを入力します。

    次の 2 種類の式がサポートされています:

    • [cron 式]:標準の cron 式を使用します。詳細については、「スケジュール時間パラメーター」をご参照ください。

    • [時間間隔]@every 式を使用します。

      ワークフローを実行する間隔 (分単位) を指定します。

    [時間間隔] を選択し、「1」と入力して、ワークフローを 1 分ごとに実行します。

    ペイロード

    JSON フォーマットのカスタムパラメーター。

    {"key": "value"}

    説明

    時間ベースのスケジュールの説明を入力します。

    test schedule

    時間ベースのスケジュールを有効化

    時間ベースのスケジュールを有効または無効にします。

    [時間ベースのスケジュールを有効化] スイッチをオンにします。

    • スケジュールを作成した後、ワークフローの [時間ベースのスケジュール] タブで確認できます。

    • ワークフローの [実行履歴] タブで、実行履歴を確認できます。[実行履歴] タブに表示されるスケジュールされたトリガーからのレコードは、scheduled-exec で始まる名前、成功のステータス、ミリ秒単位の実行時間を持ちます。この例では、1 分ごとに新しい実行が表示されます。

CLI を使用したスケジュールの作成

Alibaba Cloud CLI を使用して時間ベースのスケジュールを作成するには、まず Alibaba Cloud CLI をインストールして設定する必要があります。詳細については、「Alibaba Cloud CLI とは」をご参照ください。

  1. (任意) 次のコマンドを実行して、CreateSchedule 操作のリクエストパラメーターを表示します。

    aliyun fnf CreateSchedule help

    想定される出力:

    Alibaba Cloud Command Line Interface Version 3.0.45
    Product: fnf (FunctionFlow)
    Link:    https://xxxxxxxx.html
    Parameters:
      --CronExpression String  Required
      --FlowName       String  Required
      --ScheduleName   String  Required
      --Description    String  Optional
      --Enable         Boolean Optional
      --Payload        String  Optional
      --RequestId      String  Optional
  2. 次のコマンドを実行して、時間ベースのスケジュールを作成します。

    aliyun fnf CreateSchedule --FlowName test --ScheduleName "schedule-test" --CronExpression "@every 1m" --Payload "{\"key\":\"value\"}" --Description "test schedule" --Enable true

    想定される出力:

    {
            "CreatedTime": "2024-06-26T03:36:57Z",
            "CronExpression": "@every 1m",
            "Description": "test schedule",
            "Enable": true,
            "LastModifiedTime": "2024-06-26T03:36:57Z",
            "Payload": "{\"key\":\"value\"}",
            "RequestId": "c7034d83-d1ba-648c-f05c-156439a857d7",
            "ScheduleId": "b888a48f-229d-4b35-adc6-5c63a37cf3b1",
            "ScheduleName": "schedule-test"
    }

スケジュール時間パラメーター

時間ベースのスケジュールでは、次のパラメーターを使用します:

{
    payload: "payload"
    cronExpression: "cronExpression"
    enable: true|false
}
  • payload:スケジュールされた実行のカスタム入力。ペイロードは JSON フォーマットである必要があります。

  • cronExpression:ワークフローのスケジュール。次の 2 種類の式がサポートされています。

    説明

    1 分未満の間隔は無効です。

    • @every 値 単位

      この式は、固定間隔でワークフローを実行します。値は正の整数である必要があり、単位は "m" (分) である必要があります。

      シナリオ例

      5 分ごとに実行

      @every 5m

      1.5 時間ごとに実行

      @every 90m

    • 時間式

      • cron 式

        デフォルトでは、cron 式は協定世界時 (UTC) を使用します。標準の cron 式のフォーマットは次のとおりです:秒 分 時 日 (月) 月 曜日

      • タイムゾーン式

        特定のタイムゾーンでタスクを実行するには、式の前に CRON_TZ=<TIMEZONE> を付けます。たとえば、Asia/Shanghai タイムゾーンで毎月 1 日の 04:00 にフローをトリガーするには、CRON_TZ=Asia/Shanghai 0 0 4 1 * * を使用します。

        説明

        ご利用のタイムゾーンで夏時間 (DST) が採用されている場合、DST の切り替え時に実行が重複したり、欠落したりすることがあります。これらの切り替え期間中に実行をスケジュールすることは避けることを推奨します。

      次の表は、時間式の一般的な例を示しています。たとえば、北京時間の 12:00 にワークフローをスケジュールする場合、対応する cron 式は 0 0 4 * * * で、タイムゾーン式は CRON_TZ=Asia/Shanghai 0 0 12 * * * です。

      cron 式

      タイムゾーン式

      毎日 12:00 にワークフローを実行するようにスケジュールします。

      0 0 4 * * *

      CRON_TZ=Asia/Shanghai 0 0 12 * * *

      毎日 12:30 にワークフローを実行するようにスケジュールします。

      0 30 4 * * *

      CRON_TZ=Asia/Shanghai 0 30 12 * * *

      毎時 26、29、33 分にワークフローを実行します。

      0 26,29,33 * * * *

      CRON_TZ=Asia/Shanghai 0 26,29,33 * * * *

      月曜日から金曜日の毎日 12:30 にワークフローを実行するようにスケジュールします。

      0 30 4 ? * MON-FRI

      CRON_TZ=Asia/Shanghai 0 30 12 ? * MON-FRI

      月曜日から金曜日の 12:00 から 14:00 まで 5 分ごとにワークフローを実行するようにスケジュールします。

      0 0/5 4-6 ? * MON-FRI

      CRON_TZ=Asia/Shanghai 0 0/5 12-14 ? * MON-FRI

      1 月から 4 月までの毎日 12:00 にワークフローを実行するようにスケジュールします。

      0 0 4 ? JAN,FEB,MAR,APR *

      CRON_TZ=Asia/Shanghai 0 0 12 ? JAN,FEB,MAR,APR *

      • フィールドの説明

        フィールド

        値の範囲

        使用可能な特殊文字

        0–59

        サポートされていません

        0–59

        , - * /

        0–23

        , - * /

        日 (月)

        1–31

        , - * ? /

        1–12 または JAN–DEC

        , - * /

        曜日

        1–7 または MON–SUN

        , - * ?

      • 特殊文字の説明

        文字

        定義

        *

        フィールド内の任意の値を示します。

        [分] フィールドで * は、アクションが 1 分ごとに実行されることを意味します。

        ,

        値のリストを示します。

        [曜日] フィールドで MON,WED,FRI は、月曜日、水曜日、金曜日を示します。

        -

        値の範囲を示します。

        [時] フィールドで 10-12 は、10:00 から 12:00 (UTC) までの時間範囲を示します。

        ?

        特定の値がないことを示します。

        [日 (月)] または [曜日] のいずれかに値を指定し、両方には指定しない場合に使用します。たとえば、[日 (月)] に日付を指定した場合、[曜日] フィールドでは ? を使用します。

        /

        増分を示します。n/m は、n から始まる m の増分を示します。

        [分] フィールドで 3/5 は、毎時 3 分から 5 分ごとにワークフローを実行します。

入力フォーマット

時間ベースのスケジュールがワークフローをトリガーすると、サービスは次の JSON オブジェクトを入力として渡します:

{
  "triggerTime": "2020-01-01T00:00:00Z",
  "triggerName": "time-trigger",
  "payload": {
    "key": "value",
    "key_int": 1
  }
}
  • triggerTime:ワークフローの実行がスケジュールされた時間。指定された時間にワークフローが複数回スケジュールされる場合があります。この値は重複排除に使用できます。

  • triggerName:時間ベースのスケジュール名。

  • payload:スケジュール設定で定義したカスタム入力。$.payload.key のような式を使用して、フロー定義でこのオブジェクトの値にアクセスできます。詳細については、「入力と出力」をご参照ください。