例: 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
このリストには、各ログ・タイプの変換可能な表示名および使用可能なプロパティーのリストが含まれます。
環境に応じた特定のログ・タイプを要求する
ログを要求するには、以下の呼び出しを使用します。
POST /instance/services/logs
ログ要求の詳細は、呼び出しの要求本体の JSON オブジェクトとして渡します。 例えば、開発環境のアプリケーション・クラスターからのログを要求するには、以下のように呼び出しの本体に環境およびログ・タイプを含める必要があります。
POST /instance/services/logs
	...
	{
	  "environment": "dev",
	  "log_type": "AppCluster"
	}
指定するログ・タイプでサポートされるプロパティーによっては、対応するプロパティーを JSON オブジェクトで設定することで呼び出しの本体にフィルター基準を追加できます。 例えば、2019 年 8 月 16 日午後 01:07 から 01:17 までの間にログ・レベル all で記録されたすべてのイベントを含むアプリケーション・クラスター・ログを要求するには、以下の呼び出しを使用します。
POST /instance/services/logs
	...
	{
	  "environment": "dev",
	  "log_type": "AppCluster",
	  "start_time": "2019-08-16T13:17:22.421Z",
	  "duration": 10,
	  "min_log_level": "all"
	}
応答には、ログの ID、ならびにログ要求の状況および詳細が入ります。 ログ ID を使用すると、状況、ログ要求の詳細、およびログ・ファイルを取得できます。 ログ・タイプに対してサポートされていないプロパティーを指定すると、API でエラーが返されます。 サポートされているすべてのプロパティーを含めない場合、欠落しているプロパティーにはデフォルト値が使用されます。
要求したログを取得する
GET 呼び出しに log_id パラメーターを追加して、ログ取得要求の状況を確認します。
GET /instance/services/logs/8015
返されたログ要求に「available」の状況が含まれている場合は、content-type「application/zip」を指定した以下の呼び出しを使用して、以下のログを含む .zip ファイルを検索できます:
GET /instance/services/logs/8015/file
ログ要求および関連するログ・ファイルを削除する
以下の呼び出しを使用し、ログ要求およびログ・ファイルを削除します。
DELETE /instance/services/logs/8015