タイムトリガーは、指定された時点または指定された間隔で関数を自動的にトリガーします。 これにより、定期的なタスク実行が必要なシナリオでタスクを柔軟にスケジュールできます。
シナリオ
時間トリガーは、次のようなさまざまなシナリオで使用できます。
データの定期的なバッチ処理。 たとえば、1時間ごとに完全なデータ収集とレポート生成が行われます。
1時間ごとにクーポンを送信するなど、毎日の行動をスケジュールします。
毎日00:00にデータを削除するなど、分離された非同期タスクのスケジューリング。
始める前に
ステップ1: タイムトリガーの作成
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[サービスと機能] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [サービス] ページで、管理するサービスを見つけ、[操作] 列の [関数] をクリックします。
On the関数ページで、管理する機能をクリックします。
関数の詳細ページで、トリガータブからバージョンまたはエイリアスを選択します。バージョンまたはエイリアスドロップダウンリストをクリックし、トリガーの作成.
[トリガーの作成] パネルでパラメーターを設定し、[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: 関数の入力パラメータを設定する
[機能の詳細] ページで、[コード] タブをクリックし、[テスト機能] の横にあるアイコンをクリックし、ドロップダウンリストから [テストパラメーターの設定] を選択します。
[テストパラメーターの設定] パネルで、[新しいテストイベントの作成] または [既存のテストイベントの変更] タブをクリックし、[イベント名] とイベントの内容を指定します。 次に、[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: 関数の書き込みとテスト
タイムトリガーを作成した後、関数コードを記述し、関数をテストしてコードが正しいかどうかを確認できます。 指定された時間になると、タイムトリガーが自動的に関数をトリガーします。
関数の詳細ページで、コードタブで、コードエディターに関数コードを入力し、デプロイをクリックします。
このトピックでは、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
[コード] タブをクリックし、[テスト機能] をクリックします。
関数の実行後、[コード] タブで結果を表示できます。
関連ドキュメント
設定したタイムトリガーが関連する関数のトリガーに失敗した場合は、トリガーモードとトリガー時刻を確認します。 トリガーモードをカスタム設定に設定した場合、UTC時間はデフォルトでCRON式フィールドで使用されます。 実行エラーのトラブルシューティング方法の詳細については、「解決策2: トリガールールが満たされているかどうかの確認」の「トリガー時間」をご参照ください。
関数のHTTPトリガーを作成した場合、関数の別のタイプのトリガーを作成できなくなります。 別のイベント関数を作成し、対応するトリガーを設定し、コード内のHTTP関数へのアクセスを設定できます。 詳細については、「SDKを使用したHTTP関数の実行」をご参照ください。
タイムトリガーを使用する場合、実行時間は、関数インスタンスがオンデマンドモードで動作するか、プロビジョニングされたモードで動作するかに基づいて計算されます。 実行期間の計算の詳細については、「コンセプト」をご参照ください。