APIデプロイメントへのロギングの追加

APIゲートウェイで以前に作成したAPI仕様にロギング・ポリシーを追加する方法について学習します。

APIゲートウェイを作成し、1つ以上のAPIをそれにデプロイした場合、APIゲートウェイとの間のトラフィックのフローの詳細を調べる必要がある可能性があります。たとえば、APIクライアントに返されたレスポンスを確認したり、エラーのトラブルシューティングを行う場合があります。APIゲートウェイ・サービスがAPIゲートウェイを介するリクエストとレスポンスに関する情報とAPIゲートウェイ内での処理に関する情報をOracle Cloud Infrastructure Loggingサービスのログとして格納するように指定できます。

APIデプロイメント用の2種類のログをOracle Cloud Infrastructure Loggingサービスで定義および格納できます:
  • APIゲートウェイを介してAPIデプロイメントとの間で送受信されるすべてのリクエストおよびレスポンスのサマリーを記録するアクセス・ログ。アクセス・ログの内容の詳細は、APIデプロイメント・アクセス・ログを参照してください。
  • APIデプロイメントのAPIゲートウェイ内の処理に関する情報を記録する実行ログ。実行ログの内容の詳細は、APIデプロイメント実行ログを参照してください。実行ログのログ・レベルは、次のいずれかとして指定できます:
    • 情報。すべての処理ステージのサマリーを記録します。
    • 警告。処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。
    • エラー。処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。

    APIデプロイメントの実行ログ・レベルを設定し、個々のルートに異なる実行ログ・レベルを設定して、APIデプロイメントから継承された実行ログ・レベルをオーバーライドできます。

APIデプロイメント仕様にロギングを追加するには、次を実行します:

  • コンソールの使用
  • JSONファイルの編集

コンソールを使用したロギングの追加

コンソールを使用したOracle Cloud Infrastructure Loggingでのログの構成および有効化

コンソールを使用してOracle Cloud Infrastructure Loggingにログを格納するAPIデプロイメント・ログを構成および有効化するには:

  1. コンソールを使用してAPIデプロイメントを作成または更新し、「最初から」オプションを選択して、「基本情報」ページで詳細を入力します。

    詳細は、APIデプロイメントの作成によるAPIゲートウェイへのAPIのデプロイおよびAPIゲートウェイまたはAPIデプロイメントの更新を参照してください。

  2. 「基本情報」ページの「APIロギング・ポリシー」セクションで、次のいずれかのオプションを「実行ログ・レベル」として指定し、APIゲートウェイ内の処理に関する情報を記録します:

    • 情報: すべての処理ステージのサマリーを記録します。これがデフォルトのオプションです。
    • 警告: 処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。
    • エラー: 処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
  3. 「次」を2回クリックして、「ルート」ページのAPIデプロイメント内の個々のルートの詳細を入力し、「ルート・ロギング・ポリシーの表示」をクリックします。

  4. 個々のルートに適用される実行ログ・レベル・オーバーライドとして、次のいずれかのオプションを指定します(APIデプロイメントから継承された実行ログ・レベルをオーバーライドするため):

    • 情報: すべての処理ステージのサマリーを記録します。
    • 警告: 処理中に発生した一時的なエラーのみを記録します。たとえば、接続のリセットです。
    • エラー: 処理中に発生した永続的なエラーのみを記録します。たとえば、内部エラー、または404メッセージを返すファンクションのコールです。
  5. 「次」をクリックして、APIデプロイメント用に入力した詳細を確認します。
  6. APIデプロイメントを作成または更新するには、「作成」または「変更の保存」をクリックします。

    APIデプロイメントは、「APIデプロイメントの詳細」ページに表示されます。

  7. 「リソース」で、「ログ」をクリックし、「ロギングの有効化」スライダをクリックして、「ログの作成」エントリ・パネルのOracle Cloud Infrastructure Loggingサービスで新しいAPIデプロイメント・ログを作成および有効化します:
    • コンパートメント: デフォルトでは、現在のコンパートメント。
    • ログ・グループ: デフォルトでは、コンパートメント内の最初のログ・グループ。
    • ログ・カテゴリ: 「実行」または「アクセス」のいずれかを選択します。
    • ログ名: デフォルトでは、選択したカテゴリに応じて<deployment-name>_executionまたは<deployment-name>_accessになります。

    詳細は、リソースのロギングの有効化を参照してください。

  8. 「ログの有効化」をクリックして、新しいログを作成し、有効化します。

JSONファイルの編集によるロギングの追加

Oracle Cloud Infrastructure Loggingに格納されるログの実行ログ・レベルを設定するためのJSONファイルの編集

JSONファイルのAPIデプロイメント仕様を編集して、Oracle Cloud Infrastructure Loggingに格納される実行ログのログ・レベルを設定するには:

  1. 任意のJSONエディタを使用し、Oracle Cloud Infrastructure Loggingに格納される実行ログのログ・レベルを設定する既存のAPIデプロイメント仕様を編集するか、新しいAPIデプロイメント仕様を作成します(APIデプロイメント仕様の作成を参照)。

    APIデプロイメント仕様には、少なくとも次の内容を含むroutesセクションが含まれます:

    • パス。たとえば、/helloです
    • 1つ以上のメソッド。たとえば、GETです
    • バック・エンドの定義。たとえば、URLまたはOCI Functions内のファンクションのOCIDです。

    For example, the following basic API deployment specification defines a simple Hello World serverless function in OCI Functions as a single back end:

    {
      "routes": [
        {
          "path": "/hello",
          "methods": ["GET"],
          "backend": {
            "type": "ORACLE_FUNCTIONS_BACKEND",
            "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
          }
        }
      ]
    }
  2. (オプション) APIデプロイメント仕様のすべてのルートにグローバルに適用される実行ログのログ・レベルを設定するには:

    1. routesセクションの前にloggingPoliciesセクションを挿入します。例:

      
      {
        "loggingPolicies": {},
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            }
          }
        ]
      }
    2. 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"
            }
          }
        ]
      }
  3. (オプション) (APIデプロイメントから継承されたグローバル実行ログ・レベルをオーバーライドして)特定のルートの実行ログのログ・レベルを設定するには:

    1. ルートのbackendセクションの後にloggingPoliciesセクションを挿入します。例:

      
      {
        "loggingPolicies": {
          "executionLog": {
            "logLevel": "INFO"
          }
        },
        "routes": [
          {
            "path": "/hello",
            "methods": ["GET"],
            "backend": {
               "type": "ORACLE_FUNCTIONS_BACKEND",
               "functionId": "ocid1.fnfunc.oc1.phx.aaaaaaaaab______xmq"
            },
            "loggingPolicies": {}
          }
        ]
      }
    2. 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"
              }
            }
          }
        ]
      }
  4. APIデプロイメント仕様を含むJSONファイルを保存します。

  5. APIデプロイメント仕様は、次の方法でAPIデプロイメントを作成または更新するときに使用します:

    • 「既存のAPIのアップロード」オプションを選択して、コンソールでJSONファイルを指定します
    • APIゲートウェイREST APIへのリクエストでJSONファイルを指定します

    詳細は、APIデプロイメントの作成によるAPIゲートウェイへのAPIのデプロイを参照してください。

  6. 実行ログのログ・レベルを設定したら、リソースのロギングの有効化の手順に従って、Oracle Cloud Infrastructure Loggingサービスで新しいAPIデプロイメント・ログを作成および有効化します。

ログの表示

APIデプロイメント仕様にロギングを追加し、APIをAPIゲートウェイにデプロイすると、それに応じてAPIゲートウェイ・サービスによってログが書き込まれます。

Oracle Cloud Infrastructure Loggingでのログの表示

APIデプロイメント・ログの内容は、「APIデプロイメントの詳細」ページからOracle Cloud Infrastructure Loggingに表示できます。「リソース」「ログ」をクリックし、表示するログの名前をクリックします。

または、Oracle Cloud Infrastructure Logging「ログ検索」ページからAPIデプロイメント・ログの内容を表示できます。「ログの詳細の取得」を参照してください。

アクセス・ログおよび実行ログの内容の詳細は、次を参照してください: