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

Function Compute:時間トリガー

最終更新日:Sep 09, 2024

タイムトリガーは、指定された時点または指定された間隔で関数を自動的にトリガーします。 これにより、定期的なタスク実行が必要なシナリオでタスクを柔軟にスケジュールできます。

シナリオ

時間トリガーは、次のようなさまざまなシナリオで使用できます。

  • データの定期的なバッチ処理。 たとえば、1時間ごとに完全なデータ収集とレポート生成が行われます。

  • 1時間ごとにクーポンを送信するなど、毎日の行動をスケジュールします。

  • 毎日00:00にデータを削除するなど、分離された非同期タスクのスケジューリング。

始める前に

ステップ1: タイムトリガーの作成

  1. Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。

  2. 上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、管理するサービスを見つけ、[操作] 列の [関数] をクリックします。

  3. On the関数ページで、管理する機能をクリックします。

  4. 関数の詳細ページで、トリガータブからバージョンまたはエイリアスを選択します。バージョンまたはエイリアスドロップダウンリストをクリックし、トリガーの作成.

  5. [トリガーの作成] パネルでパラメーターを設定し、[OK] をクリックします。 下表に、各パラメーターを説明します。

    パラメーター

    説明

    トリガータイプ

    [タイムトリガー] を選択します。

    タイムトリガー

    パラメーター

    トリガー名を入力します。

    タイマートリガー

    バージョンまたはエイリアス

    デフォルト値はLATESTです。 別のバージョンまたはエイリアスのトリガーを作成する場合は、関数の詳細ページの右上隅でバージョンまたはエイリアスを選択します。 バージョンとエイリアスの詳細については、「バージョンの管理」および「エイリアスの管理」をご参照ください。

    LATEST

    トリガーモード

    トリガーモードを選択します。 オプション:

    • 間隔: [間隔] フィールドに正の整数nを入力します。 この関数はn分ごとにトリガーされます。

    • [カスタム時刻の選択]: タイムゾーンを選択し、日付、曜日、および時刻を指定します。 関数は指定された時間にトリガーされます。

    • カスタム設定: cron式フィールドでCRON式を指定します。 関数は、cron式で指定された時刻にトリガーされます。

    間隔

    トリガーメッセージ

    カスタムパラメーターを入力します。 トリガーメッセージは、payload in eventの値として使用されます。

    素晴らしい-fc

    Cron Expressionパラメーターを設定して、タイムゾーンを設定できます。 以下の項目はcron式について説明します。

    • Cron式 (UTC時間)

      デフォルトでは、cron式は協定世界時 (UTC) 時間を使用します。 たとえば、関数を毎日12:00 (UTC + 8) にスケジュールする場合は、0 0 4 * * * 式を使用できます。

    • Cron式 (UTC + 8)

      特定のタイムゾーンの指定された時点で関数をスケジュールする場合は、CRON_TZを使用できます。 たとえば、毎月1日の04:00 (UTC + 8) に呼び出される関数を指定する場合は、CRON_TZ=Asia/Shanghai 0 4 1 * * 式を使用できます。 タイムゾーンの式はリージョンによって異なります。

      説明

      タイムゾーンで夏時間 (DST) と冬期が使用されている場合、DSTと冬期の間で時間が変化すると、関数の実行頻度が高くなります。 実行時間は、DSTと冬期の間で変更が発生した時点に設定しないことを推奨します。

トリガーが作成されると、[トリガー] タブに表示されます。 既存のトリガーを変更または削除するには、「トリガーの管理」をご参照ください。

ステップ2: 関数の入力パラメータを設定する

  1. [機能の詳細] ページで、[コード] タブをクリックし、[テスト機能] の横にあるxialatubiaoアイコンをクリックし、ドロップダウンリストから [テストパラメーターの設定] を選択します。

  2. [テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、[イベント名] とイベントの内容を指定します。 次に、[OK] をクリックします。

    タイムトリガーは、次のイベント形式を使用して関数をトリガーします。

    {
        "triggerTime":"2023-12-26T07:49:00Z",
        "triggerName":"timer-trigger",
        "payload":"awesome-fc"
    }            

    パラメーター

    データ型

    説明

    triggerTime

    String

    2023-12-26T07:49:00Z

    関数がトリガーされた時刻。

    triggerName

    String

    タイマートリガー

    タイムトリガーの名前。

    payload

    String

    素晴らしい-fc

    トリガーの作成時に入力したトリガーメッセージの値。

ステップ3: 関数の書き込みとテスト

タイムトリガーを作成した後、関数コードを記述し、関数をテストしてコードが正しいかどうかを確認できます。 指定された時間になると、タイムトリガーが自動的に関数をトリガーします。

  1. 関数の詳細ページで、コードタブで、コードエディターに関数コードを入力し、デプロイをクリックします。

    このトピックでは、Pythonコードを例として使用します。

    import json
    import logging
    
    logger = logging.getLogger()
    
    def handler(event, context):
        logger.info('event: %s', event)
    
        # Parse the json
        evt = json.loads(event)
        triggerName = evt["triggerName"]
        triggerTime = evt["triggerTime"]
        payload = evt["payload"]
    
        logger.info('triggerName: %s', triggerName)
        logger.info("triggerTime: %s", triggerTime)
        logger.info("payload: %s", payload)     
    
        return 'Timer Payload: ' + payload                      
  2. [コード] タブをクリックし、[テスト機能] をクリックします。

    関数の実行後、[コード] タブで結果を表示できます。

関連ドキュメント

  • 設定したタイムトリガーが関連する関数のトリガーに失敗した場合は、トリガーモードとトリガー時刻を確認します。 トリガーモードをカスタム設定に設定した場合、UTC時間はデフォルトでCRON式フィールドで使用されます。 実行エラーのトラブルシューティング方法の詳細については、「解決策2: トリガールールが満たされているかどうかの確認」の「トリガー時間」をご参照ください。

  • 関数のHTTPトリガーを作成した場合、関数の別のタイプのトリガーを作成できなくなります。 別のイベント関数を作成し、対応するトリガーを設定し、コード内のHTTP関数へのアクセスを設定できます。 詳細については、「SDKを使用したHTTP関数の実行」をご参照ください。

  • タイムトリガーを使用する場合、実行時間は、関数インスタンスがオンデマンドモードで動作するか、プロビジョニングされたモードで動作するかに基づいて計算されます。 実行期間の計算の詳細については、「コンセプト」をご参照ください。