同期呼び出しは、関数を呼び出す方法の 1 つです。関数を同期的に呼び出すと、イベントが直接関数をトリガーし、Function Compute が関数を実行してレスポンスを待機します。呼び出しが完了すると、Function Compute はレスポンス、実行サマリー、ログ出力などの実行結果を直接返します。本トピックでは、同期呼び出しのシナリオと制限について説明します。
シナリオ
関数を即座に実行し、結果を直接返す必要がある場合は、同期呼び出しを使用してください。
制限
デフォルトでは、1 つの Alibaba Cloud アカウント (プライマリアカウント) の単一リージョン内のインスタンスの合計数は 100 に制限されています。実際の値は クォータセンター で確認できます。この制限を引き上げるには、クォータセンター でリクエストを送信してください。
CloudMonitor コンソールで、関数の関連メトリック (throttles) を使用してスロットリングの動作を確認できます。
同時実行
同時実行とは、任意の時点において関数コードが同時に実行される回数を指します。次の式を使用して、関数の同時呼び出し数を見積もることができます。
同時呼び出し数 = リクエストレート × 関数の実行時間
-
リクエストレート:関数が呼び出されるレート、つまり 1 秒あたりのリクエスト数または 1 秒あたりのイベント数。
-
関数の実行時間:関数リクエストがインスタンスに到達してから、リクエストの実行が完了するまでの期間。単位:秒。
たとえば、Alibaba Cloud Object Storage Service (OSS) イベントを処理する関数の平均実行期間が 3 秒で、OSS が 1 秒あたり 10 個のイベントを発行する場合、この式に基づくと、関数の同時呼び出し数は 30 になります。
関数の同時実行数は課金に影響します。課金の詳細については、「課金概要」をご参照ください。