CWSANDBOX_API_KEY に設定した CoreWeave API アクセストークンを使用します。Forge APIキーによる認証については、はじめに を参照してください。CKS の要件については、配置モード を参照してください。
このガイドでは、サンドボックスからコンテナーログを取得する方法を説明します。コンテナーログを使用すると、メインプロセスの動作を監視したり、障害をデバッグしたり、サンドボックスの停止後に出力を確認したりできます。
コンテナーログとは、サンドボックスのメインプロセスの stdout と stderr です。stream_logs() を使用してストリーミングできます。この関数は、Sandbox.run() に渡したコマンドの出力を取得します。exec() コマンドの出力は含まれないため、その出力には Process.stdout または Process.stderr を使用してください。
stream_logs() は、ログ行を順に返す StreamReader を返します。同期と非同期のどちらでも反復処理できます。
コマンドを指定せずに
Sandbox.run() を呼び出した場合、サンドボックスのデフォルトコマンドは stdout にも stderr にも書き込まないため、stream_logs() は何も出力しません。stdout または stderr に書き込むコマンドを渡してください。最近のログを取得する
tail_lines を使用して、履歴全体をストリーミングせずに最新のログ行を取得します。これは実行中のサンドボックスを素早く確認するのに役立ちます。
フォローモード
ログを継続的にストリーミングします。tail -f のように動作します。新しいデータが到着するまでイテレーターはブロックします。
Ctrl+C を押して停止してください。
時間でフィルター
since_time を渡すと、特定のタイムスタンプ以降のログのみを取得できます。これにより、出力を関心のあるウィンドウに絞り込めます。たとえば、デプロイメントやインシデント以降のログなどです。
タイムスタンプ
timestamps=True を設定すると、各行の先頭にサーバーからの ISO 8601 タイムスタンプが付加されます。サーバー側タイムスタンプは、サンドボックスイベントを他のシステムと関連付けるのに役立ちます。
Async 反復処理
アプリケーションでasyncio を使用している場合は、イベントループをブロックしないように、同じ StreamReader を async for で反復処理してください。
停止したサンドボックスからログを取得する
ログはサンドボックスが停止した後も利用可能なままなので、失敗を調査したり、完了した作業の出力を確認したりできます。完了、失敗、または終了したサンドボックスから過去のログを取得します:follow=False (デフォルト) のみがサポートされます。