Azure Functions Flex Consumption PlanでFunction Appを作成・管理する方法と確認ポイント

Azure FunctionsでFlex Consumption PlanのFunction Appを作成・管理する場合、結論は「従来のConsumption Planと同じ感覚で作らない」ことです。新規作成、デプロイ、VNet統合、スケール、Always Ready、HTTP同時実行数、証明書、監視まで、Flex Consumption Plan専用の確認項目があります。特に既存アプリを移行する場合は、インプレース移行ではなく新しいFunction Appを作成してコードを再デプロイする前提で計画する必要があります。Microsoft Learnの該当ページは英語版で2026-05-18、日本語版で2026-05-20の最終更新表示があり、本記事では2026年5月19日前後の公式情報として整理します。(Microsoft Learn)

目次

Azure FunctionsのFlex Consumption Planで何を確認すべきか

Azure Functionsの「Create and Manage Function Apps in a Flex Consumption Plan」は、Flex Consumption PlanでホストするFunction Appの作成方法と、作成後に変更できる主要設定をまとめた公式ドキュメントです。単なる作成手順ではなく、運用時に問題になりやすい設定が広く扱われています。(Microsoft Learn)

管理者・開発者がまず見るべきポイントは次のとおりです。

確認項目重要な理由実務での判断ポイント
リージョン対応Flex Consumption PlanはすべてのAzureリージョンで使えるとは限らない作成前にaz functionapp list-flexconsumption-locationsで確認する
ランタイムC# in-processなど、サポート外の構成がある.NETはisolated worker model前提で確認する
デプロイ方式Flex Consumptionでは.zipパッケージをBlob Storageコンテナーに配置するPythonや依存ライブラリが多い構成ではリモートビルドを使う
VNet統合サブネット要件と委任先がPremium/Dedicatedと異なる/27以上、複数アプリや高負荷では/26を目安にする
スケール設定インスタンスメモリ、Always Ready、HTTP同時実行数で性能と費用が変わるレイテンシ要件とコスト上限をセットで決める
更新方式既定のRecreateではデプロイ時に実行中処理が中断される可能性があるゼロダウンタイムが必要ならRollingUpdateの制約を確認する
証明書Flex Consumptionではsite-scoped certificateモデルを使う証明書数、Key Vault連携、ファイルパス参照を確認する
監視・コストAlways Readyやメモリ設定により課金が変わるApplication Insights、Azure Monitor、Cost Managementを初期設定に含める

Flex Consumption Planは、LinuxベースのAzure Functionsホスティングプランです。従来のConsumption Planと同じくサーバーレスの実行課金モデルを使いながら、VNet統合、インスタンスメモリ選択、Always Ready、関数単位のスケーリング、より大きなスケールアウトなどを利用できます。MicrosoftはFlex ConsumptionをAzure Functionsの推奨サーバーレスホスティングプランとして説明しています。(Microsoft Learn)

影響を受ける対象者

今回の公式情報は、新規にAzure Functionsを作る開発者だけでなく、既存のConsumption Planから移行を検討している管理者にも関係します。

対象者確認すべきこと
Azure管理者サブスクリプション権限、リージョン、クォータ、VNet、ストレージ、Cost Management
アプリ開発者ランタイム、依存ライブラリ、リモートビルド、HTTP同時実行数、証明書読み込み方法
SRE・運用担当Application Insights、Azure Monitor、アラート、デプロイ時の中断、ロールバック手順
セキュリティ担当マネージドID、Storage Blob Data Contributor、Key Vault、ストレージ公開設定
移行担当既存プランからの新規作成・再デプロイ、スロット非対応、Blobトリガー、証明書再設定

特にLinux Consumption Planを使っている場合は、Microsoftが2028年9月30日にLinux Consumption PlanでのFunction Appホスティングを廃止予定としており、機能や言語の強化もLinux Consumption Planでは行われていないと説明しています。移行計画は余裕を持って始めるべきです。(Microsoft Learn)

新規Function App作成時の確認ポイント

Flex Consumption PlanのFunction Appを作成するには、少なくともリソースグループ、ストレージアカウント、Flex Consumption Plan上のFunction Appが必要です。Azure CLIをローカルで使う場合は、公式手順ではAzure CLI 2.60.0以降が前提とされています。(Microsoft Learn)

作成前に、まず対応リージョンを確認します。

az login

az functionapp list-flexconsumption-locations \
  --query "sort_by(@, &name)[].{Region:name}" \
  -o table

次に、リソースグループとストレージアカウントを作成します。ストレージアカウント名はAzure Storage全体で一意で、数字と小文字のみの3〜24文字にする必要があります。公式手順では、ストレージアカウントへの不要なアクセスを制限することも重要事項として示されています。(Microsoft Learn)

az group create \
  --name <RESOURCE_GROUP> \
  --location <REGION>

az storage account create \
  --name <STORAGE_NAME> \
  --location <REGION> \
  --resource-group <RESOURCE_GROUP> \
  --sku Standard_LRS \
  --allow-blob-public-access false

Function App作成の基本形は次のようになります。

az functionapp create \
  --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> \
  --storage-account <STORAGE_NAME> \
  --flexconsumption-location <REGION> \
  --runtime dotnet-isolated \
  --runtime-version 8.0

C#を使う場合、Flex Consumption PlanではC# in-processモデルがサポートされていません。既存の.NET Function Appを移行する場合は、isolated worker modelへの移行を先に確認してください。(Microsoft Learn)

Azure portalとVisual Studio Codeで作る場合の注意点

Azure portalでは、Function App作成時にホスティングオプションとして「Flex Consumption」を選び、リージョン、ランタイム、インスタンスサイズ、ストレージ、Application Insights、認証を指定します。公式手順では、認証タイプをマネージドIDにする選択肢も示されています。(Microsoft Learn)

Visual Studio CodeからもFlex Consumption PlanのFunction Appを作成できますが、すべての設定を作成時に指定できるわけではありません。たとえば、VNet統合、デプロイストレージ、インスタンスメモリ、Always Ready、HTTP同時実行数などは、Azure CLI、Azure portal、ARM/Bicepなどでの設定確認が必要になります。(Microsoft Learn)

デプロイ方式はBlob Storage上の.zipパッケージが前提

Flex Consumption Planのデプロイでは、プロジェクトコードと実行に必要なライブラリを含む.zipパッケージをBlob Storageコンテナーに配置します。既定ではAzureWebJobsStorageと同じストレージアカウントが使われますが、別のストレージアカウントや認証方式を指定することもできます。(Microsoft Learn)

既存のFunction Appへデプロイすると、そのアプリ内の内容は上書きされます。これは検証環境と本番環境の取り違えで事故につながりやすいポイントです。CI/CDでは、デプロイ先のFunction App名、リソースグループ、サブスクリプションを明示し、環境ごとに分けて管理しましょう。(Microsoft Learn)

Pythonプロジェクトでは、公式手順で常にリモートビルドを要求するよう案内されています。Windows上でビルドした成果物をLinux環境のFlex Consumption Planへそのまま配置すると、依存パッケージやネイティブライブラリの差で動かないことがあります。(Microsoft Learn)

az functionapp deployment source config-zip \
  --src <FILE_PATH> \
  --name <APP_NAME> \
  --resource-group <RESOURCE_GROUP> \
  --build-remote true

デプロイストレージをカスタマイズする場合は、ストレージアカウントとコンテナーが事前に存在している必要があります。複数のFunction Appが同じストレージアカウントを使う場合でも、デプロイコンテナーはアプリごとに分けるべきです。同じコンテナーを共有すると、デプロイパッケージの上書きが起きる可能性があります。(Microsoft Learn)

失敗しやすい点起きる問題対策
複数アプリで同じデプロイコンテナーを使うパッケージ上書き、意図しないコード実行アプリごとに専用コンテナーを作る
Pythonでローカルビルド成果物を使うLinux実行環境で依存関係エラー--build-remote trueを使う
既存アプリに誤ってデプロイする本番コードを上書きCI/CDの環境変数と承認フローを分ける
WEBSITE_RUN_FROM_PACKAGE前提でIaCを書くFlex Consumptionでは想定通りに動かないfunctionAppConfigベースへ見直す
接続文字列だけでストレージアクセスするシークレット管理が複雑になる可能な範囲でマネージドIDを使う

VNet統合ではサブネット設計が重要

Flex Consumption Planでは、Function App作成時または作成後にVNet統合を有効化できます。ただし、Premium PlanやDedicated Planと同じネットワーク設計をそのまま流用すると失敗しやすいです。Flex Consumptionでは各インスタンスがサブネット内の一意のIPアドレスを直接使うのではなく、プラットフォーム管理のネットワークゲートウェイプールがIPを使うIP多重化の仕組みになっています。(Microsoft Learn)

サブネット設計の目安は次のとおりです。

シナリオ推奨CIDR実務上の目安
単一のFlex Consumption Function App/271アプリの最小構成として考える
複数アプリを同一サブネットで運用/26複数アプリや高スケールのワークロードで検討する
送信トラフィックが多い構成/26以上を検討IP枯渇より送信スループットがボトルネックになりやすい

サブネットはMicrosoft.App/environmentsへ委任する必要があります。PremiumやDedicatedで使われるMicrosoft.Web/serverFarmsとは異なります。また、プライベートエンドポイントやサービスエンドポイントで既に使っているサブネット、Azure Container Apps環境と共有しているサブネットは使えません。サブネット名にアンダースコアを含められない点も、地味ですが作成エラーの原因になります。(Microsoft Learn)

ネットワーク性能の観点では、サブネットが小さすぎてもスケールアウト自体が止まるとは限りません。代わりに、依存サービスへの送信呼び出しの遅延や外部サービスへの接続タイムアウトとして現れることがあります。本番投入前に、実際の想定スケールでロードテストし、Application Insightsで依存関係のレイテンシを監視することが重要です。(Microsoft Learn)

スケールと性能はメモリ、Always Ready、同時実行数で調整する

Flex Consumption Planでは、インスタンスメモリサイズを選択できます。公式ドキュメントでは、512MB、2,048MB、4,096MBの選択肢が示され、2,048MBが多くのシナリオの既定候補として説明されています。メモリサイズが大きいほど、CPUやネットワーク帯域も比例して増える一方、アクティブ期間あたりのコストも高くなります。(Microsoft Learn)

作成時にインスタンスメモリを指定する例は次のとおりです。

az functionapp create \
  --instance-memory 4096 \
  --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> \
  --storage-account <STORAGE_NAME> \
  --flexconsumption-location <REGION> \
  --runtime dotnet-isolated \
  --runtime-version 8.0

作成後に変更する場合は、az functionapp scale config setを使います。

az functionapp scale config set \
  --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> \
  --instance-memory 512

Always Readyは、特定のトリガーグループや関数を事前に起動状態にして、コールドスタートを抑える設定です。httpdurableblobのグループ、またはfunction:<FUNCTION_NAME>=n形式で個別関数に設定できます。インスタンス数を0より大きくすると、関数が実行されていない時間にも課金対象になるため、全関数に広く設定するのではなく、レイテンシ要件が厳しい入口だけに絞るのが現実的です。(Microsoft Learn)

az functionapp scale config always-ready set \
  --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> \
  --settings http=2

HTTPトリガーの同時実行数も調整できます。注意したいのは、一度手動でHTTP concurrencyを設定すると、インスタンスメモリサイズを変えてもその値が維持される点です。メモリを増やしたのにスループットが伸びない場合、手動設定した同時実行数がボトルネックになっていないか確認しましょう。(Microsoft Learn)

az functionapp scale config set \
  --resource-group <RESOURCE_GROUP> \
  --name <APP_NAME> \
  --trigger-type http \
  --trigger-settings perInstanceConcurrency=10

サブスクリプションとリージョン単位のクォータも無視できません。Flex Consumptionアプリは、同一サブスクリプション・同一リージョン内で共有されるコンピュートクォータを消費します。公式情報では既定クォータとして250コア相当が示されており、Always Readyインスタンスもクォータに含まれます。スパイクが大きい複数アプリを同一リージョンに集約する場合は、事前にクォータ確認と必要に応じた引き上げ申請を検討してください。(Microsoft Learn)

デプロイ時の中断をどう扱うか

Flex Consumption Planでは、コードデプロイやアプリ設定変更などのサイト更新時に、既定でRecreate戦略が使われます。Recreateでは実行中のインスタンスが再起動されるため、短時間の停止や実行中処理の中断が問題になるワークロードでは注意が必要です。(Microsoft Learn)

ゼロダウンタイムを目指す場合は、RollingUpdate戦略を選べます。ただし、これは公開プレビューで、Azure CLI、Azure portal、Visual Studio Codeからは設定できず、BicepまたはARMテンプレートでfunctionAppConfig配下のsiteUpdateStrategyを設定します。公式ドキュメントでは、プレビュー期間中の制約確認が必要で、本番アプリでの利用には慎重な検討が求められています。(Microsoft Learn)

functionAppConfig: {
  siteUpdateStrategy: {
    type: 'RollingUpdate'
  }
}

Flex Consumption Planではデプロイスロットが現在サポートされていません。従来スロットを使って本番切り替えをしていた場合は、別のFunction Appを用意して検証する、Traffic ManagerやAPI Managementなど上位レイヤーで切り替える、またはRollingUpdateの制約を理解して使う、といった設計変更が必要です。(Microsoft Learn)

証明書はsite-scoped certificatesとして扱う

Flex Consumption Planでは、証明書は個別のFunction Appにスコープされるsite-scoped certificateモデルで扱われます。サポートはプレビューで、既存アプリに対する証明書の移行パスがないケースがあるため、証明書を使うアプリは移行時に再設定計画を立てる必要があります。(Microsoft Learn)

重要な制限は次のとおりです。

項目確認内容
サポート状態site-scoped certificatesはプレビュー
証明書数1アプリあたり秘密証明書3個、公開証明書3個まで
CLI対応Azure CLIでの管理はまだ利用できないため、portalまたはARM/Bicepを使う
E2E暗号化現時点ではサポートされていない
Linux実行環境Windows証明書ストアではなくファイルパスから読み込む
ファイル配置公開証明書は/var/ssl/certs、秘密証明書は/var/ssl/private

Key Vaultから証明書をインポートする場合は、サービスプリンシパルよりもマネージドIDの利用が推奨されています。Key Vault上で証明書を更新すると、プラットフォームのバックグラウンドジョブにより24時間以内にFunction Appへ同期されると説明されています。(Microsoft Learn)

既存アプリを移行する場合のチェックリスト

既存のFunction AppをFlex Consumption Planへ移す場合、インプレースでプランだけを変更する移行はサポートされていません。新しいFlex Consumption Function Appを作成し、既存アプリと並行してテストし、問題がなければトラフィックを切り替える流れになります。(Microsoft Learn)

移行前に確認すべき項目は次のとおりです。

チェック項目確認方法対応が必要な例
リージョンFlex Consumption対応リージョン一覧を確認現在のリージョンが未対応
ランタイムサポートされる言語スタックを確認C# in-processを使っている
バージョンリージョンごとの対応ランタイムを確認古いNode.js、Python、Javaなど
デプロイスロット既存アプリのDeployment slotsを確認スロット前提の本番切り替え
証明書Certificates画面やCLIで確認証明書数上限、読み込み方法変更
BlobトリガーsourceEventGridか確認既定のポーリング型Blobトリガーを使っている
IaCARM/Bicep/Terraformを確認古いアプリ設定やsiteConfigプロパティを使っている

Blob Storageトリガーでは、Flex Consumption PlanがEvent GridベースのBlobトリガーのみをサポートしている点に注意が必要です。既定のコンテナーポーリング方式を使っている場合は、移行前にEvent Gridベースへ変更する必要があります。(Microsoft Learn)

Infrastructure as Codeを使っている場合は、従来のアプリ設定をそのまま使わないようにします。Flex ConsumptionではfunctionAppConfigセクションが導入され、FUNCTIONS_WORKER_RUNTIMEWEBSITE_RUN_FROM_PACKAGEWEBSITE_CONTENTSHAREWEBSITE_MAX_DYNAMIC_APPLICATION_SCALE_OUTなど、多くの従来設定が非推奨または置き換え対象として示されています。(Microsoft Learn)

監視とコスト管理は作成直後に入れる

Flex Consumption Planでは、性能とコストの調整幅が広い分、監視を後回しにすると原因調査が難しくなります。Azure Monitorではプラットフォームメトリックを、Application Insightsではコードレベルのトレース、エラー、依存関係、実行時間を確認できます。(Microsoft Learn)

特に確認したいメトリックは次のとおりです。

目的見るべき指標
スケール状況InstanceCount
実行量OnDemandFunctionExecutionCountAlwaysReadyFunctionExecutionCount
課金影響OnDemandFunctionExecutionUnitsAlwaysReadyFunctionExecutionUnits
メモリAverageMemoryWorkingSetMemoryWorkingSet
CPUCpuPercentage
Always ReadyAlwaysReadyUnits

Application Insightsでは、移行後の失敗率、依存サービスの応答時間、インスタンスごとの挙動を確認します。コストはFunction App単体だけでなく、関連するストレージ、Application Insights、Log Analytics、VNet周辺リソースも含めてCost Managementで追跡しましょう。公式手順でも、Flex Consumption Planでは性能と運用コストを調整できるため、コスト確認が重要だと説明されています。(Microsoft Learn)

管理者・開発者が次にやるべきこと

Azure FunctionsのFlex Consumption Planを使うなら、まず既存Function Appの棚卸しから始めてください。リージョン、ランタイム、トリガー、証明書、デプロイスロット、VNet、IaC設定を一覧化し、Flex Consumptionでそのまま使えるものと変更が必要なものを分けます。

新規作成の場合は、最初から以下を決めておくと後戻りが少なくなります。

  • 利用リージョンとクォータ
  • インスタンスメモリの初期値
  • Always Readyを使う関数
  • HTTP同時実行数を手動設定するかどうか
  • VNet統合の有無とサブネットサイズ
  • デプロイストレージと認証方式
  • 証明書とKey Vault連携
  • Application Insights、Azure Monitor、Cost Managementの監視設計
  • デプロイ時の中断を許容するか、RollingUpdateを検討するか

Flex Consumption Planは、従来のConsumption Planより柔軟にスケールと性能を調整できます。一方で、設定項目が増えたことで、ネットワーク、デプロイ、監視、コストを横断して設計する必要があります。小さな検証アプリで作成・デプロイ・監視・コスト確認まで一通り試し、その結果を本番移行チェックリストに落とし込むのが、安全で現実的な進め方です。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次