Azure Spring Apps における一般的な終了コードの問題のトラブルシューティング

Note

Azure Spring Apps は、Azure Spring Cloud サービスの新しい名前です。 サービスの名前は新しくなりましたが、スクリーンショット、ビデオ、図などの資産の更新に取り組んでいる間、場所によってはしばらく古い名前が表示されます。

この記事の適用対象: ✔️ Enterprise ✔️ Basic/Standard

この記事では、Azure Spring Apps のアプリケーションがエラー コードで終了したときに講じることができるトラブルシューティング アクションについて説明します。 アプリケーションのデプロイが失敗した場合、またはアプリケーションが実行中に終了した場合、エラー コードが返されることがあります。

終了コード

終了コードは、アプリケーションが終了した理由を示します。 以下に示したのは、一般的な終了コードとその説明です。

  • 0 - アプリケーションが最後まで実行されてしまったために終了しました。 継続的に実行されるようにサーバー アプリケーションを更新してください。

    Azure Spring Apps にデプロイされた Azure アプリは、サービスを継続的に提供する必要があります。 終了コード 0 は、アプリケーションが継続的に実行されていないことを示します。 ログとソース コードを確認してください。

  • 1 - アプリケーションが 0 以外の終了コードで終了する場合、コードおよび関連するサービスをデバッグしたうえでもう一度アプリケーションをデプロイします。

    0 以外の終了コードについて考えられる原因を次に示します。

    • Spring Boot の構成になんらかの問題があります。

      たとえば、データベースに接続するには spring.db.url パラメーターが必要ですが、構成ファイルにそれが見つかりません。

    • サード パーティのサービスから切断されています。

      たとえば、Redis サービスに接続する必要があるのに、サービスが機能していないか利用できません。

    • サード パーティのサービスに対する十分なアクセス権がありません。

      たとえば、Azure Key Vault に接続してアプリケーションに証明書をインポートする必要があるのに、そこにアクセスするために必要なアクセス許可がアプリケーションにありません。

    • アプリケーションが、Web サーバーによって提供される静的ファイルまたは動的フロントエンド アプリケーションの場合、「Web 静的ファイルをデプロイする」の「ビルドとデプロイに関する一般的なエラー」セクションを参照してください。

  • 137 - アプリケーションは、猶予期間なしでホスティング プラットフォームによって即時終了されています。 この終了コードは、次のいずれかのシナリオの結果である可能性があります。

    • ライブネス チェックが失敗すると、ホスティング プラットフォームは、アプリケーションの終了を試行し、猶予期間をおいた後、アプリケーションを即時に中止します。 アプリケーションがグレースフル シャットダウンを正常に処理するようにしてください。

    • メモリ不足エラーが原因でアプリケーションが終了しました。 アプリケーションから要求されたリソースを、ホスティング プラットフォームが提供できませんでした。 アプリケーションの Java 仮想マシン (JVM) パラメーターを更新して、リソースの使用を制限するか、アプリケーション リソースをスケールアップしてください。

      アプリケーションが Java アプリケーションの場合は、JVM パラメーターの値を確認してください。 アプリケーションのメモリの制限を超えている可能性があります。

      たとえば、アプリケーションで使用されるメモリが最大 5 GB であるにもかかわらず、Xmx JVM パラメーターが 10 GB に設定されているとします。 Xmx パラメーターの値がアプリケーションのメモリの制限以下になるように、Xmx の値を減らすか、アプリケーション メモリを増やしてください。

  • 143 - アプリケーションは、メモリ不足エラーまたはその他のエラーが原因で正常性チェックに応答できなかったために終了しました。

    このエラー コードは、多くの場合、メモリ不足エラーによって生成されます。 詳細については、「メモリ不足の問題によって引き起こされるアプリの再起動の問題」を参照してください。

    Azure CLI の az spring app logs コマンドを使用して、アプリケーション ログから詳細を取得することもできます。 詳細については、「Azure Spring Apps のアプリケーション コンソール ログをリアルタイムでストリーミングする」を参照してください。

次のステップ