Azure Functions Core Tools 4.11.0の変更点と影響範囲を解説

Azure Functionsの「Azure Functions documentation update: Release prep 4.11.0」は、Azure上のFunction Appランタイムを大きく変える更新ではなく、主にAzure Functions Core Toolsの4.11.0リリース準備に関する変更です。結論から言うと、Core Toolsのバージョン表記が4.10.0から4.11.0へ更新され、リリースノートの見出しも4.11.0に変わりました。一方で、PR上ではHost versionは変更なしと明記されています。ローカル開発、CI/CD、func publishfunc packを使うチームは、実行環境のCore Toolsバージョンとデプロイ手順を確認しておくべき更新です。(GitHub)

目次

Azure Functions documentation update: Release prep 4.11.0でまず押さえるべき結論

今回の更新は、Azure Functions Core Toolsのリリース準備PRとして、2026年5月20日にAzure公式GitHubリポジトリのmainブランチへマージされたものです。PRの変更内容は非常に小さく、Directory.Version.propsVersionPrefix4.10.0から4.11.0へ変更し、release_notes.mdの見出しをAzure Functions CLI 4.11.0へ更新する内容でした。コミット上の差分も2ファイル、2行追加・2行削除に限られています。(GitHub)

実務上のポイントは、「Azure Functionsのホストランタイム更新」と「Core ToolsのCLI更新」を混同しないことです。Core Toolsはローカル開発、テンプレート生成、パッケージ作成、発行、設定操作などに使うCLIツールです。Microsoft Learnでも、Core Toolsはローカルで関数を開発・テストし、準備ができたらAzureへデプロイしたりアプリケーション設定を操作したりするためのツールと説明されています。(Microsoft Learn)

確認項目今回の内容実務上の見方
Core Toolsのバージョン4.10.04.11.0ローカルPC、ビルドエージェント、開発コンテナーのCLI更新対象
リリースノート見出しをAzure Functions CLI 4.11.0へ変更ドキュメント・リリース管理上の更新
Host versionPR上は変更なしFunction Appのランタイム移行作業とは切り分けて判断
変更ファイルrelease_notes.mdsrc/Cli/func/Directory.Version.propsアプリコードやhost.jsonへの直接変更ではない
差分規模2ファイル、2行追加・2行削除大規模な破壊的変更を示すPRではない

4.11.0のリリースノート上で確認できる追加変更

リリース準備PRそのものはバージョン表記の更新が中心ですが、GitHubの4.11.0リリースページでは、Azure Functions CLI 4.11.0として複数の変更点も掲載されています。リリースページ上ではHost Runtime Versionは4.1048.200、In-Proc CLIはCLI Version 4.5.0、Host Runtime Version 4.48.100と記載されています。(GitHub)

リリースノート上の主な変更は、local.settings.jsonFUNCTIONS_WORKER_RUNTIMEがない場合のfunc packエラー表示の改善、Node.js 24のスタック定義更新、SSL/TLS証明書エラーの明確化、func kubernetes deployfunc kubernetes deleteの修正、dotnet-isolated向けMcpPromptTriggerテンプレート追加、Azure Storage接続文字列取得時のARM整合性に関する修正などです。(GitHub)

リリースノート上の変更影響を受けやすい利用者確認ポイント
func packのエラー改善パッケージ化を自動化している開発者、CI担当者FUNCTIONS_WORKER_RUNTIMEが明示されているか
Node.js 24のスタック定義更新Node.js Functions、Flex Consumption検討中のチームAzureポータルや公式サポート表の反映状況も確認
SSL/TLS証明書エラーの明確化企業プロキシ、SSLインスペクション環境証明書エラーをネットワーク起因として切り分けやすくなる
Kubernetes deploy/delete修正Kubernetes向けデプロイを使うチームkubectl rollout status--no-docker利用時の挙動を再検証
McpPromptTriggerテンプレート追加dotnet-isolatedでMCP関連テンプレートを試す開発者テンプレート追加であり、既存Function Appへの強制変更ではない
Storage接続文字列取得の修正func azure storage fetch-connection-stringを使うチーム作成直後のStorage Account参照エラーが改善される可能性

注意したいのは、Node.js 24についてです。4.11.0のリリースノートには「Node.js 24をGAとしてstacks.jsonに反映する」趣旨の変更が記載されていますが、Microsoft Learnのサポート言語ページでは、記事作成時点でNode.js 24がPreview、Node.js 22と20がGAとして掲載されています。運用環境でNode.js 24を採用する場合は、Core Tools側のスタック定義だけで判断せず、Azureポータル、サポート言語ページ、利用中のホスティングプランでの選択可否を合わせて確認してください。(GitHub)

影響範囲:Azure上の実行環境よりもローカル開発・CI/CDに注意

今回の更新で最も影響を受けるのは、Azure FunctionsをローカルやCI/CDで扱う環境です。Azure上で既に動作しているFunction Appが、Core Tools 4.11.0への更新だけで自動的にコード変更されたり、トリガー設定が書き換わったりするわけではありません。

一方で、Core Toolsはfunc startfunc initfunc newfunc packfunc azure functionapp publish、設定取得・発行などに関わります。Microsoft Learnでも、Core ToolsのメジャーバージョンはAzure Functionsランタイムのメジャーバージョンにリンクしており、Core Tools 4.xはFunctions Runtime 4.xをサポートする推奨バージョンと説明されています。現在のCore Toolsバージョンはfunc --versionで確認できます。(Microsoft Learn)

対象影響度確認すべきこと
Azure上で稼働中のFunction AppFUNCTIONS_EXTENSION_VERSIONを不要に変更しない
ローカル開発PCfunc --versionでCore Toolsのバージョンを確認
VS CodeでのAzure Functions開発VS Code拡張とCore Toolsの組み合わせでfunc startが通るか確認
GitHub Actions / Azure Pipelines中〜高ビルドエージェント上のCore Toolsインストール方法とバージョン固定方針を確認
func publishによる手動・自動デプロイ発行前後でアプリ設定、接続文字列、スロットを確認
Kubernetes向けデプロイ4.11.0リリースノートのdeploy/delete修正に関係する手順を再テスト

管理者が確認すべき設定

Azure Functions管理者が最初に確認すべきなのは、Core Toolsの更新に合わせてFunction Appのランタイム設定を不用意に変更していないかです。Azure Functionsでは、Function AppのランタイムはFUNCTIONS_EXTENSION_VERSIONで制御されます。Microsoft Learnでは、メジャーバージョンだけを~4のように指定すると、新しいマイナーバージョンが利用可能になった際に自動更新されると説明されています。(Microsoft Learn)

今回のRelease prep 4.11.0はCore Tools側の更新であり、通常はFUNCTIONS_EXTENSION_VERSION4.11.0のように変える作業ではありません。FUNCTIONS_EXTENSION_VERSIONはAzure Functionsホストランタイムのターゲット設定であり、Core ToolsのCLIバージョン番号とは役割が異なります。特定のマイナーバージョンへのピン留めは、Microsoftやサポートから指示された場合など、明確な理由があるときに限定するのが安全です。Microsoft Learnも、可能な場合はサポートされている最新ランタイムで実行し、ピン留めは最新バージョンに問題がある場合などに限定する考え方を示しています。(Microsoft Learn)

管理者向けの確認コマンド例は次のとおりです。

az functionapp config appsettings list \
  --name <function_app_name> \
  --resource-group <resource_group_name> \
  --query "[?name=='FUNCTIONS_EXTENSION_VERSION' || name=='FUNCTIONS_WORKER_RUNTIME']"

LinuxのFunction Appでは、ランタイムや言語スタックの実体がlinuxFxVersionにも関係します。Core Tools 4.11.0へ更新しただけで、Node.js、Python、.NETなどのアプリ実行スタックを変更する必要はありません。言語バージョンを変える場合は、Core Tools更新とは別の変更として、ステージングスロットや検証環境でテストしてください。

開発者が確認すべきローカル環境

開発者は、まず自分のローカル環境で使っているCore Toolsのバージョンを確認します。

func --version

Core Toolsを更新する場合は、元のインストール方法と同じ方法で更新するのが原則です。Microsoft Learnでは、WindowsでMSIを使っていた場合は現在のMSIをアンインストールして最新MSIをインストールし、npmを使っていた場合はnpm installコマンドを再実行する、といった考え方が示されています。また、特定のコンピューターには1つのCore Toolsバージョンのみをインストールできる点にも注意が必要です。(Microsoft Learn)

環境確認・更新の考え方
Windows MSI旧MSIをアンインストールしてから最新のv4.xを導入
macOS Homebrewazure-functions-core-tools@4を更新し、必要に応じてリンクを確認
Ubuntu / DebianMicrosoftパッケージリポジトリ経由でazure-functions-core-tools-4を更新
npm既存のnpm導入手順を再実行し、PATH上のfuncが想定どおりか確認
Dev Container / Dockerイメージ内のCore Toolsバージョンを明示し、チームで再現性を確保

Windowsでは、複数のパッケージ管理ツールや古いPATH設定が原因で、更新したつもりでも別のfunc.exeが呼ばれることがあります。更新後はfunc --versionだけでなく、必要に応じて次のように実体の場所も確認してください。

where func
func --version

macOSやLinuxでは次のように確認できます。

which func
func --version

CI/CDでは「最新版を入れる」だけでなく再現性を確認する

CI/CDでAzure Functions Core Toolsを使っている場合、4.11.0への更新は開発PCよりも慎重に扱うべきです。ビルドエージェントが毎回最新のCore Toolsを取得する構成だと、ある日突然func packfunc publishの挙動が変わり、ビルド結果の差分調査が難しくなります。

実務では、次の流れで確認すると安全です。

手順内容失敗しやすいポイント
現状確認CIログにfunc --versionを出力するどのバージョンで成功していたか分からない
検証環境で更新4.11.0でfunc start、テスト、func packを実行ローカルでは通るがCIで設定不足が出る
デプロイ検証ステージングスロットや検証用Function Appへ発行本番アプリ設定を上書きしてしまう
本番反映成功したバージョンを明示して本番パイプラインへ反映「latest」運用で再現性が落ちる
ロールバック方針直前のCore Toolsバージョンへ戻せる手順を残すCLI更新とアプリ変更を同時に行い、原因切り分け不能になる

特にfunc azure functionapp publishを使っている場合、--publish-local-settingsの扱いに注意してください。Microsoft Learnでは、プロジェクトをAzureへ発行してもローカル設定は既定では自動移行されず、必要に応じて--publish-local-settingsを使うこと、またConnectionStringsセクションの値は発行されないことが説明されています。(Microsoft Learn)

local.settings.jsonFUNCTIONS_WORKER_RUNTIMEは必ず見直す

4.11.0のリリースノートには、local.settings.jsonがなく、FUNCTIONS_WORKER_RUNTIMEも未設定の場合にfunc packが分かりにくいUnsupported runtime: Noneエラーを出す問題の修正が含まれています。これはエラー表示の改善として有用ですが、根本的にはプロジェクト側でワーカーランタイムを明確にしておくべきです。(GitHub)

local.settings.jsonValuesには、通常次のような設定が入ります。

{
  "IsEncrypted": false,
  "Values": {
    "FUNCTIONS_WORKER_RUNTIME": "node",
    "AzureWebJobsStorage": "UseDevelopmentStorage=true"
  }
}

開発チームでは、言語ごとにFUNCTIONS_WORKER_RUNTIMEが正しく設定されているかを確認してください。例として、Node.jsならnode、Pythonならpython、.NET isolatedならdotnet-isolatedを使います。ローカル設定ファイルには接続文字列などのシークレットが含まれる可能性があるため、リモートリポジトリに保存しないよう注意が必要です。Microsoft Learnでも、local.settings.jsonにはシークレットが含まれる可能性があるため、リモートリポジトリに格納しないよう注意が示されています。(Microsoft Learn)

.NETインプロセスモデル利用者はSDKバージョンも確認する

Core Toolsの更新時に見落としやすいのが、.NETインプロセスモデルのSDKバージョンです。Microsoft Learnでは、Core Tools 4.0.6517以降、インプロセスモデルのプロジェクトはMicrosoft.NET.Sdk.Functionsバージョン4.5.0以降を参照する必要があり、古いバージョンを使っているとfunc startがエラーになると説明されています。(Microsoft Learn)

古いFunctionsプロジェクトを保守している場合は、Core Toolsだけを更新して終わりにせず、.csprojも確認してください。

<PackageReference Include="Microsoft.NET.Sdk.Functions" Version="4.5.0" />

ただし、依存パッケージの更新はアプリケーションコードへの影響があり得ます。Core Tools更新、SDK更新、.NET実行モデル変更を同時に行うと、問題発生時の原因切り分けが難しくなります。まずCore Tools 4.11.0で既存構成が動くか確認し、必要に応じてSDK更新を別タスクとして扱うのが安全です。

Node.js 24を検討する場合の注意点

4.11.0のリリースノートにはNode.js 24関連のスタック定義更新が含まれていますが、既存のNode.js Function Appを自動的にNode.js 24へ移行する変更ではありません。Node.jsのバージョン変更は、アプリの依存関係、Azure Functionsのサポート状況、ホスティングプラン、OS設定を含めて判断する必要があります。

Microsoft Learnのサポート言語ページでは、Node.js 24はPreview、Node.js 22とNode.js 20はGAとして掲載されています。また、Node.js 22はLinux従量課金プランでサポートされる最後のNode.jsバージョンで、新しいNode.jsバージョンはLinux Consumptionには追加されない旨も説明されています。(Microsoft Learn)

Node.js 24を検討する場合は、次の順に確認すると失敗を避けやすくなります。

確認項目判断基準
公式サポート状態Microsoft Learn、Azureポータル、利用リージョンで選択可能か
ホスティングプランLinux ConsumptionではなくFlex Consumptionなどが必要か
ローカル実行Node.js 24でnpm installfunc start、単体テストが通るか
依存パッケージネイティブモジュールや古いSDKがNode.js 24に対応しているか
本番展開スロット、検証用Function App、段階的ロールアウトを使うか

Kubernetesデプロイ利用者は4.11.0で再テストする価値がある

func kubernetes deployfunc kubernetes deleteを利用しているチームは、4.11.0の変更を優先的に確認すべきです。リリースノートでは、Deployment登録前にkubectl rollout statusが走る競合状態の修正と、func kubernetes delete--no-dockerを尊重する修正が掲載されています。(GitHub)

この種の修正は、普段は問題が見えにくくても、ネットワーク遅延、Kubernetes APIサーバーの応答タイミング、CIエージェントの性能差によって再現することがあります。4.10.0以前で断続的に失敗していたデプロイがある場合は、4.11.0で同じ条件の再実行ログを比較してください。

確認時は、少なくとも次の情報をログに残すと後から調査しやすくなります。

func --version
kubectl version --client
kubectl config current-context

展開前チェックリスト

本番環境に関係するチームでは、Core Tools 4.11.0を導入する前に次のチェックを行ってください。

チェック理由
func --versionをローカルとCIで確認した開発者PCとCIの差異を把握するため
FUNCTIONS_EXTENSION_VERSIONを不用意に変更していないCore Tools更新とホストランタイム設定を混同しないため
FUNCTIONS_WORKER_RUNTIMEが明示されているfunc packやローカル実行時のランタイム判定を安定させるため
local.settings.jsonをリポジトリに含めていない接続文字列やシークレット漏えいを防ぐため
func startと主要トリガーの動作確認をしたローカルランタイムで基本動作を確認するため
func packfunc publishを検証環境で試したパッケージ化・発行手順の差分を確認するため
Node.js 24などの言語更新を同時に進めていないCLI更新とランタイム更新の原因切り分けを容易にするため
ロールバック手順を残したCI/CDでCLI更新起因の障害が起きたときに戻せるようにするため

よくある誤解と判断基準

Core Tools 4.11.0にするとAzure上のFunction Appも4.11.0になる?

なりません。Core Toolsはローカル開発やデプロイに使うCLIであり、Azure上のFunction Appが使用するランタイムはFUNCTIONS_EXTENSION_VERSIONなどのアプリ設定やサイト設定で管理されます。~4のようにメジャーバージョンを指定している場合、Functionsランタイムのマイナー更新は自動更新の対象になりますが、これはCore Toolsのバージョン番号とは別の仕組みです。(Microsoft Learn)

Host version unchangedなら何もしなくてよい?

Azure上の実行環境だけを見れば大きな対応は不要なケースが多いです。ただし、Core Toolsを使うローカル開発、CI/CD、Kubernetesデプロイ、パッケージ作成では影響が出る可能性があります。特にビルドエージェントが毎回最新CLIをインストールする運用では、バージョン確認と検証ログの保存が重要です。

4.11.0へすぐ更新すべき?

新規開発や検証環境では、4.11.0を使って問題ありません。既存の本番デプロイパイプラインでは、いきなり全面更新するより、まず検証環境でfunc startfunc packfunc publishを通し、差分がないことを確認してから反映するのが現実的です。

Node.js 24へ移行するタイミングと同時に進めてよい?

同時に進めると、問題が起きたときにCore Tools更新が原因なのか、Node.js更新が原因なのか分からなくなります。まずCore Tools 4.11.0を既存ランタイムで検証し、その後にNode.js 24などの言語ランタイム更新を別の変更として扱うのが安全です。

次に取るべき行動

今回のAzure Functions documentation update: Release prep 4.11.0は、Core Toolsの4.11.0リリース準備として見るべき更新です。Host versionはPR上で変更なしとされているため、Function Appのランタイム設定を慌てて変更する必要はありません。一方で、Core Toolsは開発、テスト、パッケージ化、デプロイに関わるため、ローカルPCとCI/CDのバージョン確認は必須です。(GitHub)

まずはチーム内でfunc --versionを確認し、CIログにもCore Toolsバージョンを出力してください。次に、検証環境でfunc startfunc packfunc publishを実行し、FUNCTIONS_WORKER_RUNTIMElocal.settings.jsonの扱いに問題がないか確認します。Node.js 24、Kubernetesデプロイ、.NETインプロセスモデルを使っている場合は、今回の4.11.0リリースノートに関連する変更点を個別にチェックしてから本番反映するのが安全です。

この記事を書いた人

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

コメント

コメントする

目次