Azure Functions で言語スタックのバージョンを更新する

Azure Functions での特定の言語スタックのサポートは、特定のバージョンに制限されています。 新しいバージョンが利用可能になったら、アプリを更新してそれらの機能を活用することができます。 古いバージョンの場合は Functions でのサポートも、通常、コミュニティのサポート終了スケジュールに合わせて終了することがあります。 詳細については、「言語ランタイム サポート ポリシー」を参照してください。 アプリが引き続きサポートを受けられるようにするには、この記事で説明されている手順に従って、利用可能な最新バージョンに更新する必要があります。

関数アプリを更新する方法は、次の点によって異なります。

  • 関数の作成に使用する言語。必ず、記事の上部でお使いのプログラミング言語を選択してください。
  • Azure でアプリを実行するオペレーティング システム(Windows または Linux)。
  • ホスティング プラン

Note

この記事では、分離ワーカー モデルを使用してアプリの .NET バージョンを更新する方法について説明します。 インプロセス モデルにより以前のバージョンの .NET で実行されるアプリは、.NET 8 を対象にするように更新することができます。または、インプロセス モデルから分離ワーカー モデルに移行することもできます。

更新の準備をする

Azure で関数アプリのスタック構成を更新する前に、次のタスクを完了する必要があります。

1. 関数をローカルで確認する

必ず、新しいターゲット バージョンで関数コードをローカルでテストしてください。

ローカル コンピューターでプロジェクトを更新するには、次の手順に従います。

  1. ターゲット バージョンの .NET SDK がインストールされていることを確認してください。

  2. 参照を、Microsoft.Azure.Functions.WorkerMicrosoft.Azure.Functions.Worker.Sdk の最新の安定バージョンに更新してください。

  3. プロジェクトのターゲット フレームワークを新しいバージョンに更新してください。 C# プロジェクトの場合は、.csproj ファイル内の <TargetFramework> 要素を更新する必要があります。 選択したバージョンに関連する詳細については、ターゲット フレームワークに関する記事を参照してください。

    プロジェクトのターゲット フレームワークを変更するには、プロジェクト コードの外部でツールチェーンの一部を変更する必要がある場合もあります。 たとえば、VS Code では、ユーザー設定またはプロジェクトの .vscode/settings.json ファイルを使用して、azureFunctions.deploySubpath 拡張機能の設定を更新することが必要な場合があります。 ビルド手順または CI/CD パイプラインの一部として、プロジェクト コードの外部に存在する可能性があるフレームワーク バージョンへの依存関係を調べます。

  4. 新しい .NET バージョンで必要なプロジェクト コードを更新してください。 詳細については、バージョンのリリース ノートを確認してください。 .NET アップグレード アシスタントを使って、メジャー バージョン間の変更に応じてコードを更新することもできます。

これらの変更を加えた後、プロジェクトをリビルドしてテストし、アプリが期待どおりに実行されたことを確認してください。

2. 最新の Functions ランタイムに移行する

関数アプリが最新バージョンの Functions ランタイム (バージョン 4.x) で実行されていることを確認してください。 ランタイム バージョンは、Azure portal または Azure CLI を使用して確認できます。

こちらの手順を使用して、Functions ランタイムのバージョンを確認します。

  1. Azure portal で関数アプリを見つけて、左側の[設定][構成] を選択します。

  2. [関数ランタイムの設定] タブを選択し、[ランタイム バージョン] の値をチェックして、関数アプリがバージョン 4.x の Functions ランタイム (~4) で実行されていることを確認します。

    Azure portal でアプリの Functions ランタイム バージョンを表示する方法のスクリーンショット。

最初に関数アプリをバージョン 4.x に更新する必要がある場合は、「Azure Functions バージョン 1.x からバージョン 4.x にアプリを移行する」または「Azure Functions バージョン 3.x からバージョン 4.x にアプリを移行する」を参照してください。 FUNCTIONS_EXTENSION_VERSION の設定を変更するだけではなく、この記事の手順に従う必要があります。

アプリの更新プログラムを公開する

新しいバージョンで正しく実行されるようにアプリを更新した場合は、関数アプリのスタック構成を更新する前に、アプリの更新プログラムを公開してください。

ヒント

更新プロセスを簡略化し、関数のダウンタイムを最小限に抑え、ロールバックの可能性を提供するには、更新されたアプリをステージング スロットに発行する必要があります。 詳細については、「Azure Functions のデプロイ スロット」を参照してください。

更新されたアプリをステージング スロットに発行する場合は、この記事の残りの部分に記載されているスロット固有の更新手順に従ってください。 後で、更新されたステージング スロットを運用環境にスワップします。

スタック構成を更新する

スタック構成を更新する方法は、Azure で Windows と Linux のどちらを実行しているかによって異なります。

ステージング スロットを使用する場合は、更新プログラムのターゲットを正しいスロットにしてください。

Java バージョンを更新するには、次の手順を実行します。

  1. Azure portal で関数アプリを見つけて、左側の [構成] を選択します。 ステージング スロットを使用する場合は、最初に特定のスロットを選択してください。

  2. [全般設定] タブで、Java のバージョンを希望するバージョンに更新してください。

    Azure portal で関数アプリの目的の Java バージョンを設定する方法のスクリーンショット。

  3. [保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。

.NET のバージョンを更新するには、次の手順を実行してください。

  1. Azure portal で関数アプリを見つけて、左側の [構成] を選択します。 ステージング スロットを使用する場合は、最初に特定のスロットを選択してください。

  2. [全般設定] タブで、.NET のバージョンを希望するバージョンに更新してください。

    Azure portal で関数アプリの目的の .NET バージョンを設定する方法を示すスクリーンショット。

  3. [保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。

Node.js バージョンを変更するには、次の手順に従ってください。

  1. Azure portal で関数アプリを見つけて、左側の [構成] を選択します。 ステージング スロットを使用する場合は、最初に特定のスロットを選択してください。

  2. [全般設定] タブで、Node.js のバージョンを希望するバージョンに更新してください。

    Azure portal で関数アプリの目的の Node.js バージョンを設定する方法を示すスクリーンショット。

  3. [保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。 この変更により、WEBSITE_NODE_DEFAULT_VERSION アプリケーション設定が更新されます。

PowerShell のバージョンを更新するには、次の手順を実行してください。

  1. Azure portal で関数アプリを見つけて、左側の [構成] を選択します。 ステージング スロットを使用する場合は、最初に特定のスロットを選択してください。

  2. [全般設定] タブで、.NET のバージョンを希望するバージョンに更新してください。

    Azure portal で関数アプリの目的の PowerShell バージョンを設定する方法を示すスクリーンショット。

  3. [保存] を選択し、再起動に関する通知が表示されたら [続行] を選択してください。

Python アプリは Windows ではサポートされていません。 代わりに [Linux] タブを選択してください。

関数アプリは、バージョンを更新した後に再起動されます。

スロットをスワップする

ステージング スロットでコード プロジェクトのデプロイと設定の更新を実行している場合、最終的には、ステージング スロットを運用環境に入れ替える必要があります。 詳細については、「スロットをスワップする」を参照してください。

次のステップ