Alibaba Cloud Function Computeでは、各アカウントが各リージョンで最大300個の関数インスタンスを同時に実行できるようにし、過剰な関数の呼び出しによる予期しないコストを防ぐことができます。 また、Function Computeでは、関数が過度に呼び出されないように、関数のインスタンス数の上限を指定できます。 これにより、バックエンドリソースが保護され、多数のインスタンスによって発生する予期しないコストが防止されます。
シナリオ
キー関数の同時実行要件を確保する
たとえば、function-aとfunction-bはアカウントレベルのインスタンス制限を共有します。 function-aは重要な関数であり、通常の実行を保証する必要があります。 関数bが過度に呼び出されると、関数aによる要求の実行が影響を受ける可能性があります。 この場合、function-bにインスタンス制限を指定して、function-bが多数のインスタンスをプリエンプトしないようにし、十分なインスタンスがfunction-aに割り当てられるようにすることができます。 また、function-aの同時実行値を指定して、function-aに対して指定された数のインスタンスが保証されるようにすることもできます。
ダウンストリームサービスの保護
たとえば、関数がApsaraDB RDSへの多数のアクセス要求を行う必要がある場合、ApsaraDB RDSが圧倒されないように、関数のインスタンスの最大数を指定できます。
異常な関数の呼び出しを禁止する
たとえば、関数の呼び出しが異常な場合、関数のインスタンスの最大数を0に設定することで、関数の呼び出しを禁止できます。
予期しない関数の呼び出しを防ぐ
関数のインスタンスの最大数を設定して、ブラウザとクライアントからの予期しない呼び出しを防ぐことができます。
制限事項
各Alibaba Cloudアカウントは、各リージョンで最大300個のファンクションインスタンスを同時に実行できます。 アカウントのプロビジョニング済みインスタンスとオンデマンドインスタンスは、制限を共有します。
説明上限を増やす場合は、DingTalkグループ11721331に参加してテクニカルサポートを行います。
関数に指定できる同時インスタンスの最大数は、リージョン制限の90% です。 リージョン内のすべての関数に設定できる同時インスタンスの最大総数も、リージョンの制限の90% です。
たとえば、リージョン内のアカウントの同時インスタンスの最大数が300の場合、関数に対して設定できる同時インスタンスの最大数は270です。 関数の同時インスタンスの最大数を100に設定した場合、リージョン内の他の関数に設定できる同時インスタンスの総数は170を超えることはできません。
手順
次のいずれかの方法を使用して、同時インスタンスの最大数を設定できます。
[クォータセンター] タブを使用する
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、[関数] をクリックします。
上部のナビゲーションバーで、リージョンを選択します。 [関数] ページで、管理する関数をクリックします。
[クォータセンター] タブをクリックし、[変更] をクリックします。
[同時インスタンス制限の編集] パネルで、同時インスタンスの最大数を入力し、[OK] をクリックします。
[Auto Scaling] タブを使用する
Function Computeコンソールにログインします。 左側のナビゲーションウィンドウで、 を選択します。
上部のナビゲーションバーでリージョンを選択し、[最大同時インスタンス] タブをクリックします。
[Concurrent Instance Limit] をクリックします。
[Configure Concurrent Instance Limit] パネルで、管理する機能を選択し、同時インスタンスの最大数を入力し、[OK] をクリックします。
関連ドキュメント
オンデマンドインスタンスとプロビジョニングされたインスタンスの基本概念と課金方法の詳細については、「インスタンスタイプと使用モード」をご参照ください。
オンデマンドインスタンスとプロビジョニングされたインスタンスの自動スケーリングの制限、動作、ルールの詳細については、「インスタンススケーリングの制限とルール」をご参照ください。
プロビジョニング済みインスタンスの利用率を向上させる方法の詳細については、「プロビジョニング済みインスタンスの設定」をご参照ください。