Azure Functions では、言語スタックのサポートは 特定のバージョンに制限されます。 新しいバージョンが利用可能になったら、新機能を利用するために関数アプリを更新することをお勧めします。 Functions では以前のバージョンのサポートは終了することもあり、通常はコミュニティによるサポート終了のタイムラインに合わせられます。 詳細については、言語ランタイムのサポート ポリシーを参照してください。 さまざまな言語のサポートされているバージョンについては、「言語 (ランタイム バージョン別)」を参照してください。
関数アプリのサポートを引き続き受けられるようにするには、この記事の手順に従って、使用可能な最新バージョンに更新します。 関数アプリの更新方法は、次の複数の要素によって異なります。
- 関数アプリの開発に使用する言語。 この記事の上部にあるプログラミング言語を必ず選択してください。
- Azure で関数アプリが実行されるオペレーティング システム: Windows または Linux。
-
ホスティング プラン。
注
この記事では、分離ワーカー モデルを使用する関数アプリの .NET バージョンを更新する方法について説明します。 関数アプリが以前のバージョンの .NET で実行され、インプロセス モデルを使用している場合は、次のオプションを検討してください。
[前提条件]
- アクティブなサブスクリプションを持つ Azure アカウント。
無料で作成できます。
- 次のいずれかの Functions プランでホストされている関数アプリ:
関数アプリを準備する
Azure で関数アプリのスタック構成を更新する前に、次のセクションのタスクを完了してください。
関数アプリをローカルで確認する
新しいターゲット バージョンで関数アプリ コードをローカルでテストして確認します。
ローカル コンピューターでプロジェクトを更新するには、次の手順に従います。
.NET SDK のターゲット バージョンがインストールされていることを確認します。
プレビュー バージョンを対象としている場合は、プレビュー .NET バージョンの Functions ガイダンス を参照して、バージョンがサポートされていることを確認してください。 .NET プレビューを使用するには、より多くの手順が必要になる場合があります。
Microsoft.Azure.Functions.Worker と Microsoft.Azure.Functions.Worker.Sdk の最新バージョンへの参照を更新します。
プロジェクトのターゲット フレームワークを新しいバージョンに更新してください。 C# プロジェクトの場合は、<TargetFramework> ファイル内の 要素を更新する必要があります。 バージョンの詳細については、「 ターゲット フレームワーク」を参照してください。
プロジェクトのターゲット フレームワークを変更すると、プロジェクト コード以外のツールチェーンの一部にも変更が必要になる場合があります。 たとえば、Visual Studio Code では、ユーザー設定またはプロジェクトの azureFunctions.deploySubpath ファイル内の 拡張機能設定を更新する必要があるかもしれません。 ビルド手順または継続的インテグレーションと継続的デリバリー (CI/CD) パイプラインの一部として、プロジェクト コード外に存在するフレームワーク バージョンへの依存関係があるかどうかを確認します。
新しい .NET バージョンに必要なプロジェクト コードを更新します。 特定の情報については、該当バージョンのリリース ノートを確認してください。
.NET アップグレード アシスタントを使用して、メジャー バージョン間の変更に応じてコードを更新することもできます。
これらの変更を行った後、プロジェクトをリビルドしてテストし、関数アプリが期待どおりに実行されていることを確認します。
最新の Functions ランタイムに移動する
関数アプリが最新バージョンの Functions ランタイム (バージョン 4.x) で実行されていることを確認します。 ランタイム バージョンは、Azure portal または Azure CLI を使用して確認できます。
こちらの手順を使用して、Functions ランタイムのバージョンを確認します。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。
[関数ランタイム設定] タブに移動し、[ランタイム バージョン] の値を確認します。 関数アプリは、バージョン 4.x の Functions ランタイム (~4) で実行する必要があります。
az functionapp config appsettings list コマンドを使用して、ランタイムのバージョンを確認します。
az functionapp config appsettings list --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>"
FUNCTIONS_EXTENSION_VERSION の設定により、ランタイム バージョンが設定されます。
~4 の値は、関数アプリが最新メジャー バージョン (4.x) の最新マイナー バージョンで既に実行されていることを意味します。
関数アプリをバージョン 4.x に更新する必要がある場合は、「Azure Functions バージョン 1.x からバージョン 4.x にアプリを移行する」または「Azure Functions バージョン 3.x からバージョン 4.x にアプリを移行する」を参照してください。
FUNCTIONS_EXTENSION_VERSION設定を変更するのではなく、これらの記事の指示に従ってください。
関数アプリの更新プログラムを発行する
新しいバージョンで正しく動作するように関数アプリを更新した場合は、関数アプリのスタック構成を更新する前に、関数アプリの更新プログラムを公開します。
ヒント
更新プロセスを効率化し、関数アプリのダウンタイムを最小限に抑え、ロールバック用のバックアップ バージョンを確保するには、更新された関数アプリをステージング スロットに発行する必要があります。 詳細については、「Azure Functions のデプロイ スロット」を参照してください。
更新された関数アプリをステージング スロットに発行する場合は、この記事の残りの部分にあるスロット固有の更新手順に従ってください。 後で、更新されたステージング スロットを運用環境にスワップします。
スタック構成を更新する
スタック構成を更新する方法は、関数アプリが Windows 上で実行されるか、Azure の Linux 上で実行されるかによって異なります。
ステージング スロットを使用する場合は、更新プログラムを適切なスロットにターゲットにしてください。
Java バージョンを更新するには、次の手順を実行します。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[Java バージョン] を目的のバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
.NET のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[.NET バージョン] を希望するバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
Node.js バージョンを変更するには、次の手順に従ってください。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[Node.js バージョン] を希望するバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。 この変更により、WEBSITE_NODE_DEFAULT_VERSION アプリケーション設定が更新されます。
PowerShell のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[PowerShell Core バージョン]を希望するバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
Python アプリは Windows ではサポートされていません。 代わりに [Linux] タブに移動します。
Java バージョンを更新するには、次の手順を実行します。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[Java バージョン] を目的のバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
.NET のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[.NET バージョン] を希望するバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
Node.js バージョンを変更するには、次の手順に従ってください。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[Node.js バージョン] を希望するバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。 この変更により、WEBSITE_NODE_DEFAULT_VERSION アプリケーション設定が更新されます。
PowerShell のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[PowerShell Core バージョン]を希望するバージョンに更新します。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
Azure portal で、関数アプリを見つけて選択します。 サイド メニューで、[設定]>[構成] の順に選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、[Python バージョン] を希望するバージョンに更新します。
注
関数アプリが従量課金プランで実行されている場合、Python のバージョンを変更することはできません。
保存 を選択します。 再起動の通知が表示されたら、[続行] を選択します。
Python 関数アプリは、Windows ではサポートされていません。 代わりに [Linux] タブに移動します。
az functionapp list-runtimes --os "windows" --query "[?runtime == 'java'].{Version:version}" --output table
az functionapp config set --java-version "<VERSION>" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
az functionapp list-runtimes --os "windows" --query "[?runtime == 'dotnet-isolated'].{Version:version}" --output table
az functionapp config set コマンドを実行して、関数アプリの .NET バージョンを更新します。
az functionapp config set --net-framework-version "v<VERSION>.0" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
az functionapp list-runtimes コマンドを使用して、言語スタック (Node.js) でサポートされているバージョン値を表示します。 次に、 az functionapp config set コマンドを実行して、関数アプリの Node.js バージョンを更新します。
az functionapp list-runtimes --os "windows" --query "[?runtime == 'node'].{Version:version}" --output table
az functionapp config appsettings set --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --settings "WEBSITE_NODE_DEFAULT_VERSION=~<VERSION>" --slot "staging"
az functionapp list-runtimes --os "windows" --query "[?runtime == 'powershell'].{Version:version}" --output table
az functionapp config set --powershell-version "<VERSION>" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
前のコマンドで、<FUNCTION_APP_NAME> と <RESOURCE_GROUP_NAME> をそれぞれ関数アプリとリソース グループの名前に置き換えます。 また、<VERSION> を更新するサポート対象の言語バージョンに置き換えてください。 ステージング スロットを使用していない場合は、--slot パラメーターを削除します。
注
関数アプリが従量課金プランで実行されている場合、Python のバージョンを変更することはできません。
az functionapp list-runtimes --os linux --query "[?runtime == 'java'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'dotnet-isolated'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'node'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'python'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp list-runtimes --os linux --query "[?runtime == 'powershell'].{Version:version, linuxFxVersion:linux_fx_version}" --output table
az functionapp config set --linux-fx-version "<LANGUAGE|VERSION>" --name "<FUNCTION_APP_NAME>" --resource-group "<RESOURCE_GROUP_NAME>" --slot "staging"
前のコマンドで、<FUNCTION_APP_NAME> と <RESOURCE_GROUP_NAME> をそれぞれ関数アプリとリソース グループの名前に置き換えます。 また、<LANGUAGE|VERSION> を更新プログラムの linuxFxVersion 値に置き換えます。 ステージング スロットを使用していない場合は、--slot パラメーターを削除します。
関数アプリは、バージョンを更新した後に再起動されます。
スロットをスワップする
ステージング スロットを使用してコード プロジェクトをデプロイし、設定を更新する場合は、ステージング スロットを運用環境にスワップします。 詳細については、「スロットをスワップする」を参照してください。
関連コンテンツ