メインコンテンツへスキップ

Serverless トラブルシューティング

以下の解決策で問題が解決しない場合は、Leapcell Discordコミュニティにご参加ください。

Join Discord

サービスライフサイクル

サービスの起動

以下の図は、Leapcell Linux VM内でサービスがどのように起動するかの全プロセスを示しています。

Service Lifecycle
  1. 設定された開始コマンドをBash経由で実行します。
    • コマンドが失敗する場合は、ビルドコマンドで依存関係が不足していないか確認してください。
  2. ポートがリッスンしていることを確認するために、0.0.0.0:{your_port}/kaithhealthを継続的にポーリングします。
  3. 起動が完了すると、外部トラフィックを実行中のサービスにルーティングします。

Serverless環境の制約

ServerlessとPersistent Serverの比較については、こちらを参照してください:serverless vs persistent server

ConstraintDescriptionNotes / Recommendations
Filesystem/tmp パスのみが書き込み可能で、他のすべてのパスは読み取り専用です。マシンは非常に動的です。次のリクエストは別のインスタンスにヒットする可能性があり、以前のデータは保持されません。完全に書き込み可能なパスには、Persistent Serverを使用してください。
HTTP Short-Lived Requests OnlyLeapcellサーバーレスサービスは動的で、リクエスト-レスポンスパターン用に最適化されています。ストリーミングサービス(例:WebSocket)の場合は、長時間のサービスに適したPersistent Serverを検討してください。
Request Timeout単一のリクエストの最大実行時間は15分です。この制限を超えるタスクには、Persistent Serverを使用してください。
CPU Suspensionアイドル期間中、インスタンスのCPUは一時停止されます。受信リクエストがない場合、バックグラウンドタスクは実行できません。

一般的なエラー

一般的なエラーと解決策

ErrorCauseSolution
Read-only file system または Permission deniedLeapcellは、超高速コールドスタートパフォーマンスを優先するため、**/tmp**ディレクトリのみが書き込み可能です。他のすべてのディレクトリは読み取り専用です。アプリケーションが書き込むファイルは、**/tmp**ディレクトリに送信されるようにしてください。詳細については、Storage Documentationを参照してください。
Shared Memory: /dev/shm Permission Denied/dev/shmはLeapcell環境では読み取り専用であるため、共有メモリはサポートされていません。代わりに、プロセス間通信にはpipesまたはsocketsを使用してください。
Response is bigger than the maximum allowed sizeLeapcellは、レスポンスサイズを6 MBに制限しています。より大きなデータの場合は、オブジェクトストレージに保存し、オブジェクトのURLを代わりに返してください。
Port Some(8080) is not being listened to by the serviceアプリケーションが正しいポートでリッスンしていません。アプリケーションがSettingsで構成されたポートでリッスンしていることを確認してください。
Execution Environment User vs. Build Environment User Mismatchビルド中、ユーザーはroot権限を持っています。実行時には、アプリは非rootユーザーとして実行されます。root権限を必要とする操作を、実行環境の制約下で動作するように適応させてください。