トリガーは、関数を起動させるための仕組みです。イベント駆動型コンピューティングモデルにおいて、イベントソースはイベントの生成者 (プロデューサー) であり、関数はイベントの処理者 (プロセッサー) です。トリガーは、さまざまなイベントソースを一元的に管理するために使用されます。トリガーに定義されたルールに一致するイベントが発生すると、イベントソースはトリガーに関連付けられた関数を呼び出します。
トリガーとは
Function Compute は、イベントによって関数の実行が駆動されるコンピューティングモデルを提供します。関数の実行は、FC コンソール、SDK、または他のイベントソースによってトリガーできます。関数内にトリガーを作成できます。トリガーには一連のルールが含まれています。ルールに合致するイベントが発生すると、イベントソースは関連付けられた関数をトリガーします。
1 つのトリガーで複数の関数をトリガーする必要がある場合は、Function Compute と CloudFlow を組み合わせて使用できます。関数がトリガーされたときに関数が CloudFlow プロセスを開始するように指定できます。プロセス内で複数の関数を呼び出すことが可能です。詳細については、デモをご参照ください。
利用シナリオ
シナリオ 1:OSS に保存されたイメージのステータスが変更されたときに関数を実行する
アプリケーションは Object Storage Service (OSS) にイメージを保存します。関数を呼び出して、イメージをダウンロードおよび処理できます。関数は、処理済みのイメージを OSS または別のサービスに保存します。OSS が新しくアップロードされたイメージを自動的に検出し、関連付けられた関数を呼び出すことができる場合、手動で関数を呼び出す必要はありません。これにより、開発プロセスと使用プロセスが簡素化されます。この場合、OSS トリガーを設定して、新しくアップロードされたイメージを検出し、Function Compute の関数を呼び出すことができます。トリガーが設定されると、新しいイメージがアップロードされたときに関連付けられた関数がトリガーされ、イメージのダウンロードと処理が行われます。
シナリオ 2:Simple Log Service のログが更新されたときに関数をトリガーする
アプリケーションは Simple Log Service を使用して、定期的に更新されたログを収集します。関数を呼び出して、増分ログのクエリと分析ができます。Simple Log Service が更新されたログを自動的に検出し、関連する関数を呼び出すことができれば、手動で関数を呼び出す必要はありません。この場合、SLS トリガーを設定して、更新されたログを検出し、Function Compute の関数を呼び出すことができます。トリガーを設定すると、ログが更新されたときに関連する関数がトリガーされ、増分ログが消費されます。
シナリオ 3:指定した時間に関数を実行する
たとえば、アプリケーションが 1 時間ごとにデータを収集する必要があるとします。1 時間ごとに関数を呼び出して、データを収集し、処理することができます。Function Compute の関数が 1 時間ごとに自動的に実行できれば、手動で関数を呼び出す必要はなくなります。この場合、時間トリガーを設定して時間イベントを検出し、Function Compute の関数を呼び出すことができます。時間トリガーを設定すると、関連する関数が指定された間隔で自動的にトリガーされ、データの収集と処理が行われます。
トリガーのタイプ
Function Compute のトリガーは、トリガーの統合方法に基づいて、次の 2 つのタイプに分類されます。
双方向統合トリガー:Function Compute とイベントソースで設定できるトリガーです。
Alibaba Cloud サービスイベントトリガー:Function Compute と EventBridge で設定できるトリガーです。イベントソースでトリガーを設定する必要はありません。
トリガーは、関数の呼び出し方法に基づいて、同期トリガーと非同期トリガーに分類できます。呼び出し方法の違いについては、以下で説明します。詳細については、「同期呼び出し」をご参照ください。
同期呼び出し:イベントが関数によって処理された後に結果が返されます。たとえば、FC コンソールでの関数呼び出しは同期呼び出しです。
非同期呼び出し:イベントが Function Compute の内部キューに書き込まれた後に結果が返されます。Function Compute は、メッセージが確実に処理されることを保証します。
双方向統合トリガー
トリガー | 呼び出し方式 | 関連ドキュメント | |
HTTP トリガー | 同期および非同期呼び出し | ||
時間トリガー | 非同期呼び出し | ||
OSS トリガー | 非同期呼び出し | ||
Simple Log Service トリガー | 同期呼び出し | ||
Alibaba Cloud CDN トリガー | 同期呼び出し | ||
Tablestore トリガー | 同期呼び出し | ||
Simple Message Queue (formerly MNS) トピックトリガー | 非同期呼び出し | ||
EventBridge ベースのトリガー | Simple Message Queue (formerly MNS) キュートリガー | 同期および非同期呼び出し | |
ApsaraMQ for RocketMQ/セルフマネージド Apache RocketMQ トリガー | 同期および非同期呼び出し | ||
ApsaraMQ for RabbitMQ トリガー | 同期および非同期呼び出し | ||
ApsaraMQ for Kafka トリガー | 同期および非同期呼び出し | ||
ApsaraMQ for MQTT トリガー | 同期および非同期呼び出し | ||
Data Transmission Service (DTS) トリガー | 同期および非同期呼び出し | ||
一方向統合トリガー
トリガー | 呼び出し方法 | 参照 |
API Gateway トリガー | 同期呼び出し | |
ALB トリガー | 同期呼び出しと非同期呼び出し |
Alibaba Cloud サービスイベントトリガー
トリガー | 呼び出し方式 | 関連ドキュメント |
Alibaba Cloud サービスイベントトリガー | 同期および非同期呼び出し |