Azure Functions では、言語スタックのサポートは 特定のバージョンに制限されます。 新しいバージョンが利用可能になったら、アプリを更新してそれらの機能を活用することができます。 Functions でのサポートは、以前のバージョンでも終了できます。通常は、コミュニティのサポート終了タイムラインに合わせて調整されます。 詳細については、「言語ランタイム サポート ポリシー」を参照してください。
アプリが引き続きサポートを受けられるようにするには、この記事の手順に従って、利用可能な最新バージョンに更新します。 関数アプリを更新する方法は、次の点によって異なります。
- 関数の作成に使用する言語。 この記事の上部にあるプログラミング言語を必ず選択してください。
- Azure でアプリを実行するオペレーティング システム(Windows または Linux)。
-
ホスティング プラン。
[前提条件]
Azure で関数アプリのスタック構成を更新する前に、次のタスクを実行します。
関数をローカルで確認する
必ず、新しいターゲット バージョンで関数コードをローカルでテストしてください。
ローカル コンピューターでプロジェクトを更新するには、次の手順に従います。
ターゲット バージョンの .NET SDK がインストールされていることを確認します。
プレビュー バージョンを対象としている場合は、プレビュー .NET バージョンの Functions ガイダンス を参照して、バージョンがサポートされていることを確認してください。 .NET プレビューを使用するには、より多くの手順が必要になる場合があります。
Microsoft.Azure.Functions.Worker と Microsoft.Azure.Functions.Worker.Sdk の最新バージョンへの参照を更新します。
プロジェクトのターゲット フレームワークを新しいバージョンに更新してください。 C# プロジェクトの場合は、<TargetFramework>
ファイル内の .csproj
要素を更新する必要があります。 バージョンの詳細については、「 ターゲット フレームワーク」を参照してください。
プロジェクトのターゲット フレームワークを変更するには、プロジェクト コードの外部でツールチェーンの一部を変更する必要がある場合もあります。 たとえば、Visual Studio Code では、ユーザー設定またはプロジェクトの.vscode/settings.json
ファイルを使用して、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 のデプロイ スロット」を参照してください。
更新されたアプリをステージング スロットに発行するときは、この記事の残りの部分にあるスロット固有の更新手順に従ってください。 後で、更新されたステージング スロットを運用環境にスワップします。
スタック構成を更新する
スタック構成を更新する方法は、Azure で Windows と Linux のどちらを実行しているかによって異なります。
ステージング スロットを使用する場合は、更新プログラムを適切なスロットにターゲットにしてください。
Java バージョンを更新するには、次の手順を実行します。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、Java のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。
.NET のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、.NET のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。
Node.js バージョンを変更するには、次の手順に従ってください。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、Node.js のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。 この変更により、WEBSITE_NODE_DEFAULT_VERSION
アプリケーション設定が更新されます。
PowerShell のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、.NET のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。
Python アプリは Windows ではサポートされていません。 代わりに [Linux] タブを選択してください。
Java バージョンを更新するには、次の手順を実行します。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、Java のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。
.NET のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、.NET のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。
Node.js バージョンを変更するには、次の手順に従ってください。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、Node.js のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。 この変更により、WEBSITE_NODE_DEFAULT_VERSION
アプリケーション設定が更新されます。
PowerShell のバージョンを更新するには、次の手順を実行してください。
Azure portal で、関数アプリを見つけて選択します。 左側のメニューで、[設定]>[構成] を選択します。 ステージング スロットがある場合は、特定のスロットを選択します。
[全般設定] タブで、.NET のバージョンを希望するバージョンに更新してください。
[保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。
Python アプリは Windows ではサポートされていません。 代わりに [Linux] タブを選択してください。
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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
この例では、<APP_NAME>
と <RESOURCE_GROUP>
を実際の関数アプリとリソース グループの名前でそれぞれ置き換えます。 また、<VERSION>
を更新するサポート対象の言語バージョンに置き換えてください。 ステージング スロットを使用していない場合は、--slot
パラメーターを削除します。
注
従量課金プランで実行する場合、Python のバージョンを変更することはできません。
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 == '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 "<APP_NAME>" --resource-group "<RESOURCE_GROUP>" --slot "staging"
この例では、<APP_NAME>
と <RESOURCE_GROUP>
を実際の関数アプリとリソース グループの名前でそれぞれ置き換えます。 また、<LANGUAGE|VERSION>
を更新プログラムの linuxFxVersion
に置き換えてください。 ステージング スロットを使用していない場合は、--slot
パラメーターを削除します。
関数アプリは、バージョンを更新した後に再起動されます。
スロットをスワップする
コード プロジェクトのデプロイを実行し、ステージング スロットの設定を更新している場合は、ステージング スロットを運用環境にスワップします。 詳細については、「スロットをスワップする」を参照してください。
関連コンテンツ