APIデプロイメントへのロギングの追加
以前にAPI Gatewayで作成したAPI仕様にロギング・ポリシーを追加する方法をご確認ください。
APIゲートウェイを作成し、1つ以上のAPIをそれにデプロイした場合、APIゲートウェイとの間のトラフィックのフローの詳細を調べる必要がある可能性があります。たとえば、APIクライアントに返されたレスポンスを確認したり、エラーのトラブルシューティングを行う場合があります。APIゲートウェイ・サービスがAPIゲートウェイを介するリクエストとレスポンスに関する情報とAPIゲートウェイ内での処理に関する情報をOracle Cloud Infrastructure Loggingサービスのログとして格納するように指定できます。
- APIゲートウェイを介してAPIデプロイメントとの間で送受信されるすべてのリクエストおよびレスポンスのサマリーを記録するアクセス・ログ。アクセス・ログの内容の詳細は、APIデプロイメント・アクセス・ログを参照してください。
- APIデプロイメントのAPIゲートウェイ内の処理に関する情報を記録する実行ログ。実行ログの内容の詳細は、APIデプロイメント実行ログを参照してください。実行ログのログ・レベルは、次のいずれかとして指定できます:
- 情報。すべての処理ステージのサマリーを記録します。
- 警告。処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。
- エラー。処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
APIデプロイメントの実行ログ・レベルを設定し、個々のルートに異なる実行ログ・レベルを設定して、APIデプロイメントから継承された実行ログ・レベルをオーバーライドできます。
APIデプロイメント仕様にロギングを追加するには、次を実行します:
- コンソールの使用
- JSONファイルの編集
コンソールを使用したロギングの追加
コンソールを使用したOracle Cloud Infrastructure Loggingでのログの構成および有効化
コンソールを使用してOracle Cloud Infrastructure Loggingにログを格納するAPIデプロイメント・ログを構成および有効化するには:
-
コンソールを使用してAPIデプロイメントを作成し、「最初から」オプションを選択して、「基本情報」ページで詳細を入力します。
詳細は、APIデプロイメントの作成によるAPIゲートウェイへのAPIのデプロイおよびAPIゲートウェイの更新を参照してください。
-
「基本情報」ページの「APIロギング・ポリシー」セクションで、次のいずれかのオプションを「実行ログ・レベル」として指定し、APIゲートウェイ内の処理に関する情報を記録します:
- 情報: すべての処理ステージのサマリーを記録します。これがデフォルトのオプションです。
- 警告: 処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。
- エラー: 処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
-
「次」を2回選択して、「ルート」ページでAPIデプロイメントの個々のルートの詳細を入力し、「ルート・ロギング・ポリシーの表示」を選択します。
-
個々のルートに適用される実行ログ・レベル・オーバーライドとして、次のいずれかのオプションを指定します(APIデプロイメントから継承された実行ログ・レベルをオーバーライドするため):
- 情報: すべての処理ステージのサマリーを記録します。
- 警告: 処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。
- エラー: 処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
- 「次」を選択して、APIデプロイメント用に入力した詳細を確認します。
- APIデプロイメントを作成または更新するには、「作成」または「変更の保存」を選択します。
APIデプロイメントは、「APIデプロイメントの詳細」ページに表示されます。
- 「リソース」で、「ログ」を選択し、「ロギングの有効化」スライダを選択して、「ログの作成」エントリ・パネルのOracle Cloud Infrastructure Loggingサービスで新しいAPIデプロイメント・ログを作成および有効化します:
- コンパートメント: デフォルトでは、現在のコンパートメント。
- ログ・グループ: デフォルトでは、コンパートメント内の最初のログ・グループ。
- ログ・カテゴリ: 「実行」または「アクセス」のいずれかを選択します。
- ログ名: デフォルトでは、選択したカテゴリに応じて
<deployment-name>_execution
または<deployment-name>_access
になります。
詳細は、リソースのロギングの有効化を参照してください。
- 「ログの有効化」を選択して、新しいログを作成し、有効化します。
JSONファイルの編集によるロギングの追加
Oracle Cloud Infrastructure Loggingに格納されるログの実行ログ・レベルを設定するためのJSONファイルの編集
JSONファイルのAPIデプロイメント仕様を編集して、Oracle Cloud Infrastructure Loggingに格納される実行ログのログ・レベルを設定するには:
-
任意のJSONエディタを使用し、Oracle Cloud Infrastructure Loggingに格納される実行ログのログ・レベルを設定する既存のAPIデプロイメント仕様を編集するか、新しいAPIデプロイメント仕様を作成します(APIデプロイメント仕様の作成を参照)。
APIデプロイメント仕様には、少なくとも次の内容を含む
routes
セクションが含まれます:- パス。たとえば、
/hello
です - 1つ以上のメソッド。たとえば、
GET
です - バック・エンドの定義。たとえば、URLまたはOCIファンクション内のファンクションのOCIDです。
たとえば、次の基本的なAPIデプロイメント仕様では、OCI Functionsの単純なHello Worldサーバーレス・ファンクションを単一のバック・エンドとして定義しています:
{ "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
- パス。たとえば、
-
(オプション) APIデプロイメント仕様のすべてのルートにグローバルに適用される実行ログのログ・レベルを設定するには:
-
routes
セクションの前にloggingPolicies
セクションを挿入します。例:{ "loggingPolicies": {}, "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
-
loggingPolicies
セクションにexecutionLog
ポリシーを含め、logLevel
プロパティを次のいずれかに設定して、すべてのルートのAPIゲートウェイ内での処理について記録する詳細レベルを指定します:INFO
は、すべての処理ステージのサマリーを記録します。WARN
は、処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。ERROR
は、処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
例:
{ "loggingPolicies": { "executionLog": { "logLevel": "INFO" } }, "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" } } ] }
-
-
(オプション) (APIデプロイメントから継承されたグローバル実行ログ・レベルをオーバーライドして)特定のルートの実行ログのログ・レベルを設定するには:
-
ルートの
backend
セクションの後にloggingPolicies
セクションを挿入します。例:{ "loggingPolicies": { "executionLog": { "logLevel": "INFO" } }, "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" }, "loggingPolicies": {} } ] }
-
loggingPolicies
セクションにexecutionLog
ポリシーを含め、logLevel
プロパティを次のいずれかに設定して、ルートのAPIゲートウェイ内での処理について記録する詳細レベルを指定します:INFO
は、すべての処理ステージのサマリーを記録します。WARN
は、処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。ERROR
は、処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
例:
{ "loggingPolicies": { "executionLog": { "logLevel": "INFO" } }, "routes": [ { "path": "/hello", "methods": ["GET"], "backend": { "type": "ORACLE_FUNCTIONS_BACKEND", "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq" }, "loggingPolicies": { "executionLog": { "logLevel": "ERROR" } } } ] }
-
-
APIデプロイメント仕様を含むJSONファイルを保存します。
-
APIデプロイメント仕様は、次の方法でAPIデプロイメントを作成または更新するときに使用します:
- 「既存のAPIのアップロード」オプションを選択して、コンソールでJSONファイルを指定します
- APIゲートウェイREST APIへのリクエストでJSONファイルを指定します
詳細は、APIデプロイメントの作成によるAPIゲートウェイへのAPIのデプロイを参照してください。
- 実行ログのログ・レベルを設定したら、リソースのロギングの有効化の手順に従って、Oracle Cloud Infrastructure Loggingサービスで新しいAPIデプロイメント・ログを作成および有効化します。
ログの表示
APIデプロイメント仕様にロギングを追加し、APIをAPIゲートウェイにデプロイすると、それに応じてAPIゲートウェイ・サービスによってログが書き込まれます。
Oracle Cloud Infrastructure Loggingでのログの表示
APIデプロイメント・ログの内容は、「APIデプロイメントの詳細」ページからOracle Cloud Infrastructure Loggingに表示できます。「リソース」で、「ログ」を選択し、表示するログの名前を選択します。
または、Oracle Cloud Infrastructure Loggingの「ログ検索」ページからAPIデプロイメント・ログの内容を表示できます。ログの詳細の取得を参照してください。
アクセス・ログおよび実行ログの内容の詳細は、次を参照してください: