例: Log Management REST API
この例は、クラウド操作の Log Management REST API を使用して、クラウド・サブスクリプション内のワークフロー・サーバーからログを要求および取得する方法を示しています。
この例では、ログ要求のリストを取得し、取得可能なログ・タイプを調べ、ログを要求してダウンロードし、最後にログ要求および関連するログ・ファイルを削除する方法を示します。
- 開始前に
- すべての API 呼び出しは、呼び出しの IBM-CSRF-TOKEN ヘッダー内に有効なクロスサイト・リクエスト・フォージェリー (CSRF) トークンを必要とします。
POST /instance/services/csrf_token
を使用して、CSRF トークンを取得してください。 詳しくは、 クロスサイト・リクエスト・フォージェリーの防止を参照してください。 - サブスクリプションに対するログ取得要求のリストを表示する
- 要求を取得するには、以下の呼び出しを使用します。
要求を開発環境などの環境でフィルタリングし、ページ編集を含めることができます。GET /instance/services/logs
GET /instance/services/logs/?environment=dev&offset=5&size=10
- 取得可能なログ・タイプを調べる
- いくつかの異なるタイプのログがサポートされています。 サブスクリプションで有効なログ・タイプのリストを取得するには、以下の呼び出しを使用します。
このリストには、各ログ・タイプの変換可能な表示名および使用可能なプロパティーのリストが含まれます。GET /instance/services/log_types
- 環境に応じた特定のログ・タイプを要求する
- ログを要求するには、以下の呼び出しを使用します。
ログ要求の詳細は、呼び出しの要求本体の JSON オブジェクトとして渡します。 例えば、開発環境のアプリケーション・クラスターからのログを要求するには、以下のように呼び出しの本体に環境およびログ・タイプを含める必要があります。POST /instance/services/logs
指定するログ・タイプでサポートされるプロパティーによっては、対応するプロパティーを JSON オブジェクトで設定することで呼び出しの本体にフィルター基準を追加できます。 例えば、2019 年 8 月 16 日午後 01:07 から 01:17 までの間にログ・レベル all で記録されたすべてのイベントを含むアプリケーション・クラスター・ログを要求するには、以下の呼び出しを使用します。POST /instance/services/logs ... { "environment": "dev", "log_type": "AppCluster" }
応答には、ログの ID、ならびにログ要求の状況および詳細が入ります。 ログ ID を使用すると、状況、ログ要求の詳細、およびログ・ファイルを取得できます。 ログ・タイプに対してサポートされていないプロパティーを指定すると、API でエラーが返されます。 サポートされているすべてのプロパティーを含めない場合、欠落しているプロパティーにはデフォルト値が使用されます。POST /instance/services/logs ... { "environment": "dev", "log_type": "AppCluster", "start_time": "2019-08-16T13:17:22.421Z", "duration": 10, "min_log_level": "all" }
- 要求したログを取得する
- GET 呼び出しに log_id パラメーターを追加して、ログ取得要求の状況を確認します。
返されたログ要求に「available」の状況が含まれている場合は、content-type「application/zip」を指定した以下の呼び出しを使用して、以下のログを含む .zip ファイルを検索できます:GET /instance/services/logs/8015
GET /instance/services/logs/8015/file
- ログ要求および関連するログ・ファイルを削除する
- 以下の呼び出しを使用し、ログ要求およびログ・ファイルを削除します。
DELETE /instance/services/logs/8015