Azure Functions の専用ホスティング プラン

この記事は、App Service プラン (App Service Environment (ASE) を含む) での関数アプリのホスティングに関するものです。 その他のホスティング オプションについては、ホスティング プランの記事を参照してください。

App Service プランでは、アプリを実行するための一連のコンピューティング リソースを定義します。 これらのコンピューティング リソースは、従来のホスティングでの "サーバー ファーム" に似ています。 1 つ以上の関数アプリを、他の App Service アプリ (Web アプリなど) と同じコンピューティング リソース (App Service プラン) 上で実行されるように構成できます。 これらのプランには、Basic、Standard、Premium、Isolated SKU が含まれます。 App Service プランの仕組みの詳細については、「Azure App Service プランの詳細な概要」を参照してください。

次のような状況では、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 のプライベート サイト アクセスの設定に関するページを参照してください。

次のステップ