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

Function Compute:時間トリガー

最終更新日:Jul 24, 2024

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

シナリオ

タイムトリガーは、さまざまなシナリオで使用できます。 以下の項目は、一般的なシナリオを示します。

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

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

  • ビジネスから切り離された非同期タスクの処理 (毎日00:00にデータをクリーニングするなど)

始める前に

関数の作成

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

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

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

  3. 機能の詳細ページで、[設定] タブをクリックします。 左側のナビゲーションウィンドウで、[トリガー] をクリックします。 次に、[トリガーの作成] をクリックします。

  4. [トリガーの作成] パネルで、画面の指示に従ってパラメーターを設定し、OK.

    パラメーター

    説明

    トリガータイプ

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

    タイムトリガー

    名前

    トリガーの名前。

    my_trigger

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

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

    LATEST

    トリガーモード

    トリガーモードを選択します。 有効な値:

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

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

    • カスタム設定: cron式フィールドでCRON式を指定します。 この値を選択すると、cron式で指定された時刻に関数がトリガーされます。

    間隔

    トリガーメッセージ

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

    トリガーメッセージのサイズ制限は128 KBです。これは、非同期呼び出しのペイロードの制限と同じです。

    素晴らしい-fc

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

    • UTCでのCron式

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

    • UTC + 8でのCron式

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

      説明

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

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

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

  1. 関数の詳細ページの [コード] タブで、[テスト関数] の隣のimage.pngアイコンをクリックし、ドロップダウンリストから [テストパラメーターの設定] を選択します。

  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)
    
        # 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. クリックテスト機能.

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

関連ドキュメント

  • 設定したタイムトリガーが関連する関数のトリガーに失敗した場合は、トリガーモードとトリガー時刻を確認します。 トリガーモードをカスタム設定に設定した場合、cron式で指定したCRON式にはUTC時間が使用されることに注意してください。 詳細については、「」をご参照ください。

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