Azure ランタイムのアップグレード中の一般的な問題のトラブルシューティング
この記事では、ランタイムに到達できない、モジュールが見つからないなど、関数アプリ言語またはランタイム バージョンの更新中に発生する可能性がある一般的な問題の一部を解決する方法について説明します。
"推奨されるアクション: .NET 6 を使用するように Azure Functions アプリを更新する" という電子メールを受信した場合に実行するアクション。
Microsoft .NET Core 3.1 の延長サポートは、2022 年 12 月 3 日に終了しました。 Azure Functions ランタイム v3 は、.NET Core 3.1 に基づいています。 .NET 6 を使用し、長期的なサポートを持つランタイム バージョン 4.x に関数アプリを更新することをお勧めします。 2022 年 12 月 3 日以降、Functions ランタイム バージョン 4.x にアップグレードするまで、アプリは新機能、セキュリティ パッチ、パフォーマンスの最適化、またはサポートの対象になりません。
ランタイム v3 上の Functions アプリは引き続き実行され、アプリケーションには影響しません。 この日以降、これらの Functions アプリケーションにコードをデプロイできます。 ただし、共通パスを使用して Functions ランタイム v3 を対象とするアプリケーションを作成する機能が削除される場合があります。
詳細と移行のガイダンスについては、次を参照してください。
ランタイム v4 に対する関数アプリの互換性を検証する
- Azure portal で Function App に移動します。 [問題の診断と解決] を選び、[Azure Functions 診断]を開きます。 [検索] バーで、Updating Function App Language or Runtime Version と入力し、直接実行します。 診断レポートには、更新に関するガイダンスが記載されています。 検証が完了したら、レコメンデーションに従い、アプリの問題に対処します。
- Microsoft は、関数アプリを 4.x に移行する際に発生する可能性がある問題を特定するのに役立つアップグレード前検証コントロールも提供しています。 同じ診断検索バーから、Functions 4.x Pre-Upgrade Validator と入力して、直接実行します。 検証が完了したら、レコメンデーションに従い、アプリの問題に対処します。
- ローカル プロジェクト環境をバージョン 4.x にアップグレードすることを強くお勧めします。 Azure Functions Core Tools のバージョン 4.x を使用して、アプリをローカルで全般的にテストします。
- 運用スロットをデプロイする前に、ステージング スロットを使用して、新しいランタイム バージョンの Azure でアプリをテストおよび検証することを検討してください。 スロットを使用した移行には、必ず
WEBSITE_OVERRIDE_STICKY_EXTENSION_VERSIONS=0
を設定してください。
Windows の Functions ランタイム バージョンを変更する
- azure portal Configuration ペインのアプリ設定であるFUNCTIONS_EXTENSION_VERSIONを
~4
に設定します。 詳細については、「 ランタイム バージョンを変更する」を参照してください。 netFrameworkVersion
サイト設定を .NET 6 をターゲットに設定します。netFrameworkVersion
は SiteConfig 設定であり、アプリ設定ではありません。 また、Azure portal では直接使用できません。 ただし、 Azure リソース エクスプローラー Azure CLI/PowerShell を使用して設定。
詳細については、Functions ランタイム バージョンに関するページを参照してください。
Linux の Functions ランタイム バージョンを変更する
- azure portal Configuration ペインのアプリ設定であるFUNCTIONS_EXTENSION_VERSIONを
~4
に設定します。 詳細については、「 ランタイム バージョンを変更する」を参照してください。 - 使用
LinuxFxVersion
言語に基づいて、コマンド ライン インターフェイス (CLI) を使用して<Language>|<LanguageVersion>
に設定します。 詳細については、「 Linux Function Apps の LinuxFxVersion の使用を参照してください。 たとえば、.NET 6 に更新するには、LinuxFxVersion
をdotnet|6.0
に設定し、FUNCTIONS_EXTENSION_VERSION
を~4
に設定できます。
詳細については、Functions ランタイム バージョンに関するページを参照してください。
ランタイム バージョンでサポートされている言語の一覧を取得する
ランタイム バージョンでサポートされている言語の 一覧を参照してください。
コードの更新後に関数アプリの言語バージョン設定を更新する
- PowerShell: Azure ポータルで
PowerShell Core version
を設定します。 詳細については、「 PowerShell のバージョンを変更する」を参照してください。 - Python:
linuxFxVersion
をpython|3.x
に設定します。 詳細については、Python のバージョンの変更に関する記事を参照してください。 - Java:
-DjavaVersion
を使用して言語バージョンを 11 または 17 に指定します。 詳細については、「デプロイ バージョンを指定する」を参照してください。 - Node、JavaScript: Windows の場合、
WEBSITE_NODE_DEFAULT_VERSION
アプリの設定を~16
に設定します。 Linux については、CLI を使用してlinuxFxVersion
をnode|16
に設定します。 詳細については、「 ノードのバージョンを設定する」を参照してください。
Azure Functions プロキシの使用
プロキシのサポートは、バージョン 4.x で再び利用可能になるため、関数アプリを最新のランタイム バージョンに正常にアップグレードできるようになります。 ただし、できるだけ早く関数アプリと Azure API Management の統合に切り替えるのをお勧めします。 API Management を使用すると、Functions ベースの API を定義、セキュリティで保護、管理、収益化するためのより完全な機能セットを利用できます。 詳細については、APIM に移行する方法および Visual Studio を使用した Functions と APIM の統合に関する記事を参照してください。
ランタイム バージョン 1.x、2.x、または 3.x を使用するすべての Azure Functions アプリの一覧を取得します
- Azure portal で Function App に移動します。
- [問題の診断と解決] を選び、[Azure Functions 診断]を開きます。
- [検索] バーで、Updating Function App Language or Runtime Version と入力し、直接実行します。
- 診断レポートで、下にスクロールし、[すべての関数アプリの一覧>表示の詳細を選択。
- 検索フィルターを設定し、 Show を選択して、現在のサブスクリプションの関数アプリの一覧を取得します。
または、App Service REST API 呼び出し (GetConfiguration) を使用してこれを確認することもできます。 LinuxFxVersion
バージョン情報を提供 WindowsFxVersion
。
.NET Framework 4.6.1 アプリを Functions ランタイム v1 から v4 に移動する
.NET Framework 4.6.1 はサポート終了に達したので、アプリは .NET Framework 4.8 にアップグレードする必要があります。 Functions v4 では、アウトプロセス モードで .NET Framework 4.8 アプリを実行できます。 詳細については、分離プロセス ガイドに関する記事を参照してください。
移行された関数アプリが起動していないか、ランタイムの問題がある
- .NET アプリの場合は、ビルドしてデプロイする前に、コードを .NET 6 に更新することを忘れないでください。
- Azure ポータルでアプリのランタイム バージョンを再確認。
- Windows アプリの場合、CLI または PowerShell を使用して
netFrameworkVersion
も設定する必要があります。 - 推奨どおり、2.x 以降の extension バンドルを使用していることを確認します。 Functions ランタイムのバージョン 4.x には、バージョン 2.x または 3.0.0 が必要です。
- AzureWebJobsDashboard を使用した Azure Storage へのログインは、4.x ではサポートされなくなりました。 代わりに、監視には Application Insights を使用します。
- Azure Functions ランタイムに到達できないというメッセージが表示され、ストレージ アカウントを共有している場合は、 Host ID に関する考慮事項を参照してください。
- Azure Functions 4.x では、Node.js 10 および 12、Python 3.6、PowerShell 6 はサポートされていません。 詳細については、v4 ランタイム サポートされている言語バージョンを参照してください。
- Python 関数の場合、モジュールの競合とモジュールが見つからないというエラーがある場合は、アプリ設定で
PYTHON_ISOLATE_WORKER_DEPENDENCIES
を 1 に設定してみてください。 - 既存の関数アプリの移行を確認します。
- 実行時の問題については、Azure ポータルの Diagnose と問題の解決 オプションからFunction アプリを検索するか、エラーを報告します診断レポートでエラー メッセージと解決策を確認します。 また、関数構成チェック検出機能を確認して、構成が正しいことを確認します。
- その他のトラブルシューティングのヒントについては、ブログ Azure 関数アプリを V4 にアップグレードする際の問題を確認してください。
お問い合わせはこちらから
質問がある場合やヘルプが必要な場合は、サポート要求を作成するか、Azure コミュニティ サポートにお問い合わせください。 Azure フィードバック コミュニティに製品フィードバックを送信することもできます。