Azure Functions の専用ホスティング プラン
この記事では、App Service Environment (ASE) を含む App Service プランで、専用のリソースを使用して関数アプリをホストする方法について説明します。 その他のホスティング オプションについては、ホスティング プランの記事を参照してください。
App Service プランでは、アプリを実行するための、専用のコンピューティング リソースのセットを定義します。 これらの専用のコンピューティング リソースは、従来のホスティングでの サーバー ファーム に似ています。 1 つ以上の関数アプリを、他の App Service アプリ (Web アプリなど) と同じコンピューティング リソース (App Service プラン) 上で実行されるように構成できます。 関数アプリのホスティングでサポートされる専用の App Service プランには、Basic、Standard、Premium、および Isolated SKU が含まれます。 App Service プランの仕組みの詳細については、「Azure App Service プランの詳細な概要」を参照してください。
重要
Free および Shared レベルの App Service プランは、Azure Functions ではサポートされていません。 関数の実行をホストする低コストのオプションの場合は、代わりに、関数の実行に基づいて課金される従量課金プランまたは Flex 従量課金プランを検討する必要があります。
次のような状況では、専用の App Service プランを検討してください。
- 既に他の App Service インスタンスを実行している、使用率の低い既存の VM がある。
- 関数を実行するカスタム イメージを提供したい。
課金
App Service プランの関数アプリに対する支払いは、他の App Service リソースの場合と同じです。 これは、使用量ベースのコスト コンポーネントを含む、Azure Functions の従量課金プランまたは Premium プラン ホスティングとは異なります。 このプランで実行される関数アプリまたは Web アプリの数には関係なく、プランに対してのみ課金されます。 詳細については、App Service の料金ページを参照してください。
常時接続
App Service プランを実行する場合、関数アプリが正常に実行されるように、常時接続 設定を有効にする必要があります。 App Service プランでは、関数のランタイムは非アクティブな状態が数分続くとアイドル状態となるため、関数を "起こす" ことができるのは HTTP トリガーのみとなります。 [常時接続] 設定は、App Service プランでのみ使用できます。 従量課金プランでは、関数アプリはプラットフォームにより自動的にアクティブ化されます。
常時接続が有効になっている場合でも、個々の関数の実行タイムアウトは host.json プロジェクト ファイルの functionTimeout
設定によって制御できます。
Scaling
App Service プランを使用し、VM インスタンスを追加して、手動でスケールアウトできます。 自動スケーリングを有効にすることもできます。ただし、自動スケーリングは、Premium プランのエラスティック スケールより遅くなります。 詳細については、「手動または自動によるインスタンス数のスケール変更」を参照してください。 別の App Service プランを選択してスケールアップすることもできます。 詳細については、 Azure でのアプリのスケールアップ に関するページを参照してください。
Note
App Service プランで JavaScript (Node.js) 関数を実行している場合は、vCPU の数が少ないプランを選択する必要があります。 詳細については、シングルコア App Service プランの選択に関するページをご覧ください。
App Service Environment
App Service Environment (ASE) で実行すると、関数を完全に分離し、App Service プランより多い数のインスタンスを利用できます。 開始するには、「App Service Environment の概要」を参照してください。
関数アプリを仮想ネットワークで実行するだけであれば、Premium プランを使用してそれを行うことができます。 詳細については、Azure Functions のプライベート サイト アクセスの設定に関するページを参照してください。