Azure FunctionsでNode.js 24がGAに|変更点・移行手順・設定確認ポイント

Azure FunctionsでNode.js 24のサポートが一般提供(GA)になりました。結論から言うと、Node.js 24でローカル開発した関数アプリを、Linux/Windowsの対応プランへ本番展開しやすくなった更新です。特にFlex Consumptionプランも対象に含まれるため、今後Node.js 20以前から移行するチームや、新規のサーバーレスAPIを構築する開発者にとって重要な変更です。(Microsoft Azure)

ただし、「バージョンを24に上げれば終わり」ではありません。Windowsでは64bitプロセスの確認、Linux Consumptionではプラン選定、Flex ConsumptionではRemote Buildの展開状況、CI/CDではビルド環境と依存パッケージの互換性を確認する必要があります。この記事では、Azure FunctionsのNode.js 24対応で何が変わるのか、管理者・開発者が確認すべき設定、移行時に失敗しやすいポイントを実務目線で整理します。

目次

Azure FunctionsのNode.js 24対応で何が変わったのか

今回の更新により、Azure FunctionsでNode.js 24を使ったアプリ開発とデプロイがGA扱いになりました。公式情報では、Node.js 24をローカルで使って開発し、Linux/Windowsの対応するAzure Functionsプランへデプロイできると案内されています。Flex Consumptionプランも対象に含まれます。(Microsoft Azure)

Azure Functionsの対応言語一覧では、Node.js 24はGA、想定サポート終了日は2028年4月30日とされています。Node.js 22もGAですが、想定サポート終了日は2027年4月30日です。長めの保守期間を見込んで新規開発するなら、Node.js 24を優先候補にできます。(Microsoft Learn)

項目変更内容実務上の意味
サポート状態Node.js 24がGA本番利用の候補にしやすくなった
対応OSLinux/Windowsの対応プラン既存構成に合わせて移行を検討できる
Flex Consumption対応対象に含まれる新しいサーバーレス構成でNode.js 24を採用しやすい
Remote BuildFlex Consumption向けNode.js 24のRemote Buildは順次展開展開直後はリージョン差に注意が必要
サポート期限Node.js 24は2028年4月30日予定Node.js 22より長期運用に向く

特に注意したいのは、Node.js 24対応が「すべての古いホスティング構成をそのまま救済する」という意味ではない点です。Microsoft Learnでは、Linux Consumptionプランで追加されるNode.jsの最終バージョンはNode.js 22であり、それ以降の新しいNode.jsバージョンはLinux Consumptionに追加されないと説明されています。Linux Consumptionを使っている場合は、Flex Consumptionなど別プランへの移行も検討対象になります。(Microsoft Learn)

影響を受ける利用者と確認すべきポイント

今回の更新で最も影響を受けるのは、Node.jsでAzure Functionsを運用しているチームです。新規開発よりも、既存アプリのアップグレード時に設定差分やデプロイ方式の違いが表面化しやすくなります。

対象確認すべきこと判断の目安
新規にNode.js関数を作る開発者Node.js 24、Functionsランタイムv4、プログラミングモデルv4を前提にする長期運用するならNode.js 24を第一候補にする
Node.js 20以前を利用中のチームサポート状況、依存パッケージ、CI/CDのNodeバージョン早めにNode.js 22または24へ移行計画を作る
Linux Consumption利用者Node.js 24を使えるプランかFlex Consumption、Premium、Dedicatedなどを比較する
Windows利用者64bitプロセスが有効か32bitのままだとNode.js 24で起動失敗する可能性がある
Flex Consumption利用者Remote Buildのリージョン展開状況本番前に対象リージョンで実デプロイを検証する
管理者・SREスロット、ローリング更新、監視、ロールバックデプロイ中断やコールドスタート影響を事前に評価する

Node.js 24へ移行する場合は、Azure Functions側のランタイムだけでなく、package.json、Azure Functions Core Tools、GitHub ActionsやAzure PipelinesのNode.jsバージョン、ネイティブ依存パッケージまで一体で確認する必要があります。sharp、bcrypt、canvas、データベースドライバーのようにネイティブバイナリを含むパッケージは、ローカルでは動いてもAzure上で失敗することがあります。

Node.js 24対応で混同しやすい「ランタイム」と「プログラミングモデル」

Azure FunctionsのNode.jsでは、次の2つを分けて考える必要があります。

用語意味例
Node.jsランタイムJavaScriptコードを実行するNode.jsのバージョンNode.js 24、Node.js 22
Azure FunctionsランタイムAzure Functions全体の実行基盤Functions runtime 4.x
Node.jsプログラミングモデル関数の書き方、トリガー定義、@azure/functionsの利用方法v3、v4

Microsoft Learnでは、Node.jsのプログラミングモデルとAzure Functionsランタイムは別物であり、プログラミングモデルのバージョンは@azure/functions npmパッケージのバージョンと密接に関係すると説明されています。また、同じFunction App内でv3とv4のプログラミングモデルを混在できない点も明記されています。(Microsoft Learn)

Node.js 24を使う場合は、基本的にNode.jsプログラミングモデルv4を前提に考えるのが安全です。公式の対応表では、Node.jsプログラミングモデルv4がFunctions runtime 4.25以降とNode.js 24/22/20/18に対応しています。一方、v3モデルはfunction.jsonを使う従来型の構成です。(Microsoft Learn)

既存のv3モデルをそのまま上げると起きやすい問題

v3モデルの関数アプリで、Node.jsのバージョンだけを24へ上げようとすると、次のような問題が起きやすくなります。

よくある問題原因対策
関数が一覧に出ないv3とv4の構成が混在しているFunction App単位でv4へ統一する
ローカルでは動くがAzureで失敗するCore Tools、@azure/functions、Node.jsの組み合わせが古い開発環境とCIのバージョンをそろえる
デプロイ後にトリガーが認識されないビルド成果物やエントリーポイントの配置が不適切main、scriptFile、ビルド出力先を確認する
TypeScriptだけ失敗するトランスパイル後のJavaScriptがデプロイされていないnpm run build後の成果物をデプロイ対象に含める

移行時は、Function Appにv3関数とv4関数を混在させるより、検証用の新しいFunction Appを作成してv4モデルへ移す方が安全です。小さなHTTPトリガーから移し、Queue、Timer、Event Hubなど副作用のあるトリガーは最後に移行すると事故を減らせます。

管理者が最初に確認すべきAzure Functions設定

Node.js 24へ移行する前に、管理者は次の設定を確認してください。

確認項目見る場所推奨アクション
FunctionsランタイムFunction Appの構成、アプリ設定~4系で動いているか確認する
Node.jsバージョンWindowsはWEBSITE_NODE_DEFAULT_VERSION、LinuxはlinuxFxVersionNode.js 24に変更する前に検証環境で確認する
OSとプランFunction Appの概要、App Service PlanLinux Consumptionの場合はNode.js 24対象外に注意する
64bitプロセスWindowsの構成設定Node.js 24利用時は64bitを有効化する
デプロイ方式Deployment Center、CI/CD定義Flex ConsumptionはOne Deploy前提で確認する
監視Application Insights、ログ、アラート移行前後のエラー率・実行時間を比較する

Azure FunctionsのNode.jsバージョン設定は、WindowsとLinuxで異なります。WindowsではWEBSITE_NODE_DEFAULT_VERSIONアプリ設定、LinuxではlinuxFxVersionサイト設定を使います。Microsoft Learnでは、Node.jsのバージョンを上げる前に、Function Appが最新のAzure Functionsランタイムで動いていることを確認するよう案内されています。(Microsoft Learn)

Windowsでは64bitプロセスを必ず確認する

Windows上のAzure FunctionsでNode.js 24を使う場合は、64bitプロセスの有効化が重要です。日本マイクロソフトのPaaSサポートブログでは、Node.js 24のバイナリは64bitプロセス用に提供され、32bitプロセス用のパスには用意されていないと説明されています。32bitのままだと、Node Language Workerを起動できず、Functions Hostが正常起動しない可能性があります。(Azure)

Azure CLIで確認・変更する場合の例は次のとおりです。

az functionapp config set \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <FUNCTION_APP_NAME> \
  --use-32bit-worker-process false

Node.js 24を指定するWindowsの例です。

az functionapp config appsettings set \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <FUNCTION_APP_NAME> \
  --settings WEBSITE_NODE_DEFAULT_VERSION=~24

Linuxの場合は、次のようにlinuxFxVersionを指定します。

az functionapp config set \
  --resource-group <RESOURCE_GROUP_NAME> \
  --name <FUNCTION_APP_NAME> \
  --linux-fx-version "node|24"

ただし、Linux ConsumptionプランではNode.js 24が追加対象ではない点に注意してください。Linux ConsumptionでNode.js 24を使いたい場合は、Flex Consumptionなど対応プランへの移行を検討します。(Microsoft Learn)

Flex ConsumptionでNode.js 24を使うときの注意点

Flex Consumptionは、従来の従量課金型の良さを残しつつ、仮想ネットワーク統合、インスタンスメモリサイズの選択、高速なスケールアウト、Always Readyインスタンスなどを利用できるLinuxベースのAzure Functionsホスティングプランです。Microsoft Learnでは、Azure Functionsの推奨サーバーレスホスティングプランとして説明されています。(Microsoft Learn)

Node.js 24対応により、Flex ConsumptionでもNode.js 24を選びやすくなりました。ただし、デプロイ方式には注意が必要です。Azure Functionsのデプロイ技術の説明では、Flex Consumptionで利用できるデプロイ技術はOne Deployのみとされています。アプリのコンテンツは、作成時に指定するデプロイ用のBlobコンテナーへアップロードされます。(Microsoft Learn)

Remote Buildはリージョン展開状況を確認する

今回の公式更新では、Flex ConsumptionにおけるNode.js 24のRemote Buildは順次展開中で、すべてのパブリックリージョンで利用可能になるまで一定期間があると案内されています。(Microsoft Azure)

そのため、GA直後に本番デプロイする場合は、対象リージョンで次の確認をしておくべきです。

確認内容具体的な確認方法失敗時の代替策
Remote Buildが成功するか検証用Function Appへ同じCI/CDでデプロイLinuxビルドエージェントで事前ビルドしてデプロイ
依存パッケージが解決されるかnpm ci、ビルドログ、起動ログを確認lockfileを更新し、Node.js 24対応版へ上げる
関数が認識されるかPortalのFunctions一覧、/admin/host/status、ログを確認ビルド出力先とエントリーポイントを見直す
起動時間が悪化していないかApplication InsightsでCold startや実行時間を比較Always Ready、メモリサイズ、バンドルサイズを調整

Flex Consumptionは便利ですが、ネットワーク制限を強くした環境ではデプロイ経路も設計が必要です。Function AppやストレージアカウントをPrivate Endpointで保護し、パブリックアクセスを無効にしている場合、外部のCI/CDから直接デプロイできないことがあります。Microsoft Learnでは、このような構成ではAzure Pipelinesのセルフホステッドエージェント、GitHub Actionsのセルフホステッドランナー、VPN、ExpressRouteなど、仮想ネットワークへ到達できる経路が必要と説明されています。(Microsoft Learn)

開発者がNode.js 24移行前に確認すべきコードと依存関係

Node.js 24への移行で実際に問題になりやすいのは、Azure側の設定よりもアプリケーションコードと依存関係です。特に、古いSDK、CommonJS/ES Modulesの混在、ネイティブモジュール、テスト不足が原因で移行後に障害が起きます。

package.jsonを移行の起点にする

まずpackage.jsonを確認します。

{
  "engines": {
    "node": ">=24 <25"
  },
  "scripts": {
    "build": "tsc",
    "start": "func start",
    "test": "npm test"
  },
  "dependencies": {
    "@azure/functions": "^4.0.0"
  }
}

実際のバージョン指定はプロジェクトの検証結果に合わせますが、少なくとも次の点は確認してください。

確認項目見るポイント
@azure/functionsv4プログラミングモデルを使うなら対応バージョンへ更新する
Azure SDKNode.js 24で警告や非互換が出ないか確認する
TypeScripttsconfig.jsonの出力先とデプロイ対象が一致しているか
lockfilepackage-lock.jsonやpnpm-lock.yamlをCIと一致させる
ネイティブ依存Linux上でビルドされるか、Remote Buildで解決されるか

Node.js 24に上げるタイミングで、npm installではなくnpm ciをCI/CDで使うようにすると、ローカルと本番の依存関係差分を減らせます。依存関係の更新とNode.jsの更新を同時に大量に行うと原因切り分けが難しくなるため、先に依存パッケージを現行Node.jsで更新し、その後Node.js 24へ上げる流れが安全です。

ローカル検証で最低限見るべきログ

移行前のローカル検証では、単にHTTP 200が返るかだけでなく、Functions Hostの起動ログを確認します。

node -v
npm ci
npm run build
func start

確認するポイントは次のとおりです。

ログ・挙動判断基準
node -vv24.xになっている
Functions Host起動エラーなくトリガーが列挙される
HTTPトリガーローカルURLで期待するレスポンスが返る
Queue/Timerなどトリガー登録がログに出る
警告非推奨API、SDK、依存パッケージの警告を記録する

本番移行前には、Application Insightsで移行前後の失敗率、平均実行時間、依存サービス呼び出し、コールドスタート傾向を比較できる状態にしておくと、問題発生時に戻すべきか調整すべきか判断しやすくなります。

移行・展開のおすすめ手順

Node.js 24への移行は、既存アプリへ直接適用するのではなく、検証用環境で差分を固めてから本番へ反映するのが基本です。

手順作業内容完了条件
現状把握Function App、OS、プラン、Node.js、Functionsランタイムを棚卸し対象アプリ一覧ができている
移行方針決定Node.js 24へ上げるか、まずNode.js 22へ上げるか決めるサポート期限と依存関係リスクを比較済み
ローカル更新Node.js 24、Core Tools、依存パッケージを更新func startで正常起動する
検証環境デプロイ本番と同じプラン・OSでデプロイトリガー認識、ログ、外部接続が正常
負荷・回帰テスト主要API、キュー処理、タイマー処理を確認エラー率・実行時間が許容範囲
本番展開スロット、ローリング更新、段階展開を使う監視しながら切り替え完了
ロールバック確認旧バージョンへ戻す手順を確認戻し先と手順が明文化されている

Azure Functionsのデプロイでは、プランによって更新時の挙動が異なります。Consumption、Elastic Premium、Dedicatedでは、デプロイ時に実行中の関数が終了される可能性があり、スロットを使った検証とスワップが推奨されます。Flex Consumptionも既定では再作成戦略を使いますが、ゼロダウンタイム向けのローリング更新を構成できます。(Microsoft Learn)

本番展開前のチェックリスト

チェック内容
ランタイムFunctions runtime v4で動作している
Node.js検証環境と本番環境でNode.js 24を指定している
Windows64bitプロセスが有効になっている
Linux対象プランがNode.js 24に対応している
Flex ConsumptionOne Deploy前提のCI/CDになっている
Remote Build対象リージョンで成功することを確認済み
依存関係npm ciで再現可能なビルドになっている
TypeScriptビルド成果物がデプロイ対象に含まれている
監視Application Insightsで移行前後を比較できる
ロールバック旧パッケージ、旧スロット、旧設定へ戻せる

Node.js 24へすぐ移行すべきケース、慎重に進めるべきケース

Node.js 24はGAになったため、新規開発では有力な選択肢です。ただし、すべての既存アプリを即日で移行すべきとは限りません。

判断該当するケース進め方
すぐNode.js 24を検討新規開発、依存パッケージが新しい、Flex Consumptionを新規採用最初からNode.js 24・v4モデルで作る
段階移行が安全Node.js 20以前、古いSDK、v3モデル、複数トリガーがある検証環境でv4モデル化してからNode.js 24へ移行
先に設計見直しLinux Consumptionで運用中、ネットワーク制限が強い、CI/CDが古いプラン移行とデプロイ経路を先に決める
慎重に検証ネイティブモジュール、重い画像処理、長時間処理があるLinuxビルド環境と負荷テストを用意する

特にLinux Consumptionを使っている場合は、Node.jsのバージョン更新だけでなく、ホスティングプランの将来性もあわせて見直すべきです。Microsoft Learnでは、Linux Consumptionプランは新しい言語バージョンが追加されず、ホスティングオプション自体も2028年9月30日に廃止予定とされています。(Microsoft Learn)

よくある質問

Node.js 24にすると既存のAzure Functionsは自動で更新されますか?

通常、既存アプリが自動的にNode.js 24へ切り替わるわけではありません。Function Appの構成、アプリ設定、CI/CD、package.json、ランタイムを確認し、検証したうえで変更します。自動更新を期待して放置すると、古いNode.jsのまま運用が続く可能性があります。

Node.js 22とNode.js 24のどちらを選ぶべきですか?

新規開発で依存関係に問題がなければ、サポート期間の長いNode.js 24を優先しやすいです。一方、既存アプリで依存パッケージのNode.js 24対応に不安がある場合は、まずNode.js 22へ上げてからNode.js 24を検証する段階移行も現実的です。Azure Functionsの対応表では、Node.js 24は2028年4月30日、Node.js 22は2027年4月30日が想定サポート終了日です。(Microsoft Learn)

Azure PortalだけでNode.js 24へ変更できますか?

WindowsのFunction AppではAzure Portalから変更できる場合がありますが、LinuxではCLIやデプロイ構成での管理が必要になるケースがあります。Microsoft Learnでは、WindowsはWEBSITE_NODE_DEFAULT_VERSION、LinuxはlinuxFxVersionでNode.jsバージョンを設定すると説明されています。(Microsoft Learn)

Flex ConsumptionでRemote Buildが失敗した場合はどうすればよいですか?

まず対象リージョンでRemote Buildが利用可能か確認します。GA直後はFlex Consumption向けNode.js 24のRemote Buildが順次展開中と案内されているためです。急ぎの本番展開では、LinuxのCIエージェントでnpm ciとビルドを実行し、実行可能な成果物をOne Deployで展開する方法を検討します。(Microsoft Azure)

まとめ:Node.js 24対応は「設定・プラン・CI/CD」まで含めて確認する

Azure FunctionsのNode.js 24対応GAは、Node.jsベースのサーバーレスアプリを長期運用しやすくする重要な更新です。新規開発ではNode.js 24とNode.jsプログラミングモデルv4を前提に設計し、既存アプリでは現在のNode.jsバージョン、Functionsランタイム、ホスティングプラン、デプロイ方式を棚卸ししてから移行するのが安全です。

最初に行うべきことは、対象Function Appの一覧化です。次に、Windowsなら64bitプロセス、Linuxなら対応プラン、Flex ConsumptionならRemote BuildとOne Deploy、CI/CDならNode.js 24での再現可能なビルドを確認します。小さな検証環境で成功パターンを作ってから本番へ展開すれば、Node.js 24のメリットを取り込みつつ、移行トラブルを最小限に抑えられます。

この記事を書いた人

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

コメント

コメントする

目次