時間トリガーは、特定の時間または定期的なスケジュールで関数を自動的に実行します。 これにより、柔軟なタスクスケジューリングが可能になり、定期的なタスクを必要とするアプリケーションに最適です。
適用シナリオ
時間トリガーの一般的な適用シナリオは次のとおりです。
毎時完全データを収集してレポートを生成するなど、スケジュールされたバッチデータ処理。
毎時正時にクーポンを送信するなど、毎日のアクションのスケジューリング。
毎日深夜にデータをクリーンアップするなど、ビジネスロジックから切り離された非同期タスク。
前提条件
ステップ 1:時間トリガーの作成
Function Compute コンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、ターゲット関数をクリックします。
関数詳細ページで、トリガー タブを選択し、トリガーの作成 をクリックします。
[トリガーの作成] パネルでパラメーターを設定し、[OK] をクリックします。
パラメーター
操作
例
トリガータイプ
時間トリガー を選択します。
時間トリガー
名前
トリガーのカスタム名を入力します。
my_trigger
バージョンまたはエイリアス
デフォルト値は [LATEST] です。 別のバージョンまたはエイリアスのトリガーを作成するには、まず関数詳細ページの右上隅でそのバージョンまたはエイリアスに切り替えます。 バージョンとエイリアスの詳細については、「バージョン管理」および「エイリアス管理」をご参照ください。
LATEST
トリガーモード
必要に応じてトリガーメソッドを選択します:
間隔: [間隔] テキストボックスに、正の整数 n を入力して、n 分ごとにこの関数を実行するようにします。
カスタム時刻を選択:タイムゾーンを選択し、日付、曜日、時刻を指定して、そのタイムゾーンの指定した時刻に関数を実行します。
カスタム設定:Cron 式 テキストボックスに cron 式を入力して、式で指定された時刻に関数を実行します。
時間間隔
メッセージのトリガー
カスタムパラメーターを入力します。 このトリガーメッセージは、イベントの payload の値として使用されます。
トリガーメッセージのサイズは 128 KB に制限されており、これは非同期呼び出しのペイロード制限と同じです。
awesome-fc
特定のタイムゾーン要件があり、Cron 式 をカスタマイズする必要がある場合は、次の時間式の説明をご参照ください。
Cron 式 (UTC)
Cron 式はデフォルトで協定世界時 (UTC) で実行されます。これは北京時間 (UTC+8) より 8 時間早いです。 たとえば、北京時間 (UTC+8) の毎日 12:00 に関数を実行するようにスケジュールする場合、相当する UTC 時刻は 04:00 であるため、
0 0 4 * * *を使用できます。Cron 式 (UTC+8)
タスクを特定のタイムゾーンで実行する必要がある場合は、CRON_TZ を使用して指定します。 たとえば、UTC+8 タイムゾーンで毎月 1 日の 04:00 に関数をトリガーするには、
CRON_TZ=Asia/Shanghai 0 0 4 1 * *を使用します。 タイムゾーン式はリージョンによって異なります。 ご利用のリージョンに適用される式を使用してください。説明ご利用のタイムゾーンで夏時間 (DST) が採用されている場合、DST と標準時の間の移行期間中にタスクが 2 回実行されたり、スキップされたりすることがあります。 これらの移行期間外にタスクをスケジュールすることを推奨します。
トリガーが作成されると、[トリガー名] リストに表示されます。 トリガーを変更または削除するには、「トリガーの管理」をご参照ください。
ステップ 2:関数のエントリパラメーターの設定
関数の詳細ページの [コード] タブで、[テスト関数] の横にある
アイコンをクリックし、ドロップダウンリストから [テストパラメーターの設定] を選択します。テストパラメーターの設定 パネルで、新規テストイベントの作成 または 既存のテストイベントの変更 を選択します。 イベント名とイベント内容を入力し、[OK] をクリックします。
時間トリガーは、次のイベント形式を使用して関数をトリガーします。
{ "triggerTime":"2023-12-26T07:49:00Z", "triggerName":"timer-trigger", "payload":"awesome-fc" }パラメーター
タイプ
値の例
説明
triggerTime
String
2023-12-26T07:49:00Z
関数がトリガーされた時間。
triggerName
String
timer-trigger
時間トリガーの名前。
payload
String
awesome-fc
トリガー設定で入力したカスタムパラメーター。 これは メッセージのトリガー の値です。
ステップ 3:関数コードの記述とテスト
時間トリガーを作成した後、関数コードを記述してテストし、正しく動作することを確認します。 時間トリガーは、指定された時間に関数を自動的に実行します。
関数詳細ページの コード タブで、コードエディタにコードを記述し、デプロイメントコード をクリックします。
このトピックでは、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関数のテスト をクリックします。
実行が完了したら、コード タブの上部で結果を確認します。
参考文献
設定した時間トリガーが関数の実行に失敗した場合は、まずトリガーメソッドと対応する時間設定を確認してください。 カスタムの Cron 式 を設定した場合、デフォルトで協定世界時 (UTC) が使用されることにご注意ください。 トラブルシューティング方法については、「トリガーが関数の実行に失敗した場合の対処方法」をご参照ください。