次の方法で共有


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

Azure Functions では、言語スタックのサポートは 特定のバージョンに制限されます。 新しいバージョンが利用可能になったら、アプリを更新してそれらの機能を活用することができます。 Functions でのサポートは、以前のバージョンでも終了できます。通常は、コミュニティのサポート終了タイムラインに合わせて調整されます。 詳細については、「言語ランタイム サポート ポリシー」を参照してください。

アプリが引き続きサポートを受けられるようにするには、この記事の手順に従って、利用可能な最新バージョンに更新します。 関数アプリを更新する方法は、次の点によって異なります。

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

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

[前提条件]

Azure で関数アプリのスタック構成を更新する前に、次のタスクを実行します。

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

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

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

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

    プレビュー バージョンを対象としている場合は、プレビュー .NET バージョンの Functions ガイダンス を参照して、バージョンがサポートされていることを確認してください。 .NET プレビューを使用するには、より多くの手順が必要になる場合があります。

  2. Microsoft.Azure.Functions.Worker と Microsoft.Azure.Functions.Worker.Sdk の最新バージョンへの参照を更新します。

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

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

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

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

最新の 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] タブを選択してください。

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

スロットをスワップする

コード プロジェクトのデプロイを実行し、ステージング スロットの設定を更新している場合は、ステージング スロットを運用環境にスワップします。 詳細については、「スロットをスワップする」を参照してください。