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