使用偵錯功能

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

本節說明如何使用 Apigee 使用者介面和 API 建立及管理偵錯工作階段,並查看要求和回應資料。

使用「離線偵錯」查看及分析先前下載的偵錯工作階段。

建立偵錯工作階段

偵錯工具簡單易用。您會啟動偵錯工作階段,然後對 Apigee 發出 API 呼叫,並在 UI 中查看要求和回應資料。

請按照下列各節所述,使用 Apigee 使用者介面或 API 建立偵錯工作階段。

Cloud 控制台 UI

Debug v2 (最新)

如要建立偵錯工作階段,請按照下列步驟操作:

  1. 登入Google Cloud 控制台
  2. 選取「Proxy development」>「API Proxies」
  3. 選取要偵錯的 API Proxy。畫面上會顯示 Proxy Editor Overview 窗格。
  4. 按一下「Debug」分頁標籤。
  5. 按一下「Start Debug Session」。畫面上會顯示「Start debug session」窗格。
  6. 在「Start debug session」(開始偵錯工作階段) 窗格中:

    1. 選取要執行偵錯工作階段的環境
    2. (選用) 從「篩選器」下拉式清單中選取篩選器,套用至您建立的偵錯工作階段中所有交易。預設值為 None (All transactions),其中包含偵錯資料中的所有交易。

      如要瞭解如何使用篩選器,請參閱在偵錯工作階段中使用篩選器。如要瞭解內建篩選器,請參閱「使用預先定義的篩選器」。

    3. 按一下「啟動」

Apigee 使用者介面現在會顯示「Debug session in progress」窗格。

按一下即可放大圖片 新的偵錯工作階段

偵錯工作階段會記錄要求 10 分鐘,或直到擷取 15 項要求為止。如果您使用 API 建立偵錯工作階段,可以調整 10 分鐘的限制。「Ends within」(在以下時間內結束) 欄位會顯示工作階段的剩餘時間。

您必須在所選環境中,為偵錯工作階段向要偵錯的 Proxy 傳送要求,偵錯窗格才會顯示任何資訊。

傳送要求後,要求會顯示在「交易」清單窗格中。「交易」清單每五秒更新一次。

按一下即可放大圖片 交易清單中的要求

Debug v1

如要在新的 Proxy 編輯器中建立偵錯工作階段,請按照下列步驟操作:

  1. 登入Google Cloud 控制台
  2. 選取「Proxy development」>「API Proxies」

  3. 選取要偵錯的 API Proxy。系統會顯示 Proxy 編輯器的「總覽」檢視畫面。

  4. 按一下視窗左上角的「Debug」分頁標籤。
  5. 按一下「Debug」窗格右上方的「Start Debug Session」。系統會隨即顯示「Start debug session」對話方塊。

    啟動「開始偵錯工作階段」對話方塊。

    在對話方塊中:

    1. 選取要執行偵錯工作階段的環境
    2. (選用) 從「篩選器」下拉式清單中選取要套用的篩選器,即可篩選您建立的偵錯工作階段中的所有交易。預設值為 None (All transactions),其中包含偵錯資料中的所有交易。

      如要瞭解如何使用篩選器,請參閱「在偵錯工作階段中使用篩選器」。 如要瞭解內建篩選器,請參閱「使用預先定義的篩選器」。

    3. 按一下「啟動」

Apigee UI 現在會顯示「Debug session in progress」檢視畫面。

偵錯工作階段正在進行中

偵錯工作階段會記錄要求 10 分鐘,或直到擷取 15 項要求為止。如果您使用 API 建立偵錯工作階段,可以調整 10 分鐘的限制。「Ends within」(在以下時間內結束) 欄位會顯示工作階段的剩餘時間。

您必須先在所選環境中,將要求傳送至要偵錯的 Proxy,偵錯窗格才會顯示任何資訊。偵錯工作階段的環境。

傳送要求後,要求會顯示在左側窗格底部。

啟動「開始偵錯工作階段」對話方塊。

注意:在偵錯工作階段期間,您可以在 Apigee 使用者介面中啟動另一個工作階段。如要這麼做,只要再次點按「Start Debug Session」即可。

傳統版 UI

如要在傳統 Proxy 編輯器中建立偵錯工作階段,請按照下列步驟操作:

  1. 登入 Apigee 使用者介面
  2. 從主要檢視畫面選取「API Proxy」
  3. 選取要偵錯的 API Proxy。

    系統會顯示「總覽」分頁。

  4. 按一下頁面右上方的「偵錯」分頁標籤:

    分頁

    「Debug」檢視畫面會顯示:

    偵錯檢視畫面,包含「開始偵錯工作階段」、「最近的偵錯工作階段」和「傳送要求」窗格

  5. 在「開始偵錯工作階段」面板中:
    1. 在「Env」下拉式清單中,選取要偵錯的 API Proxy 環境和修訂版本號碼。
    2. 以下範例顯示「Start a debug session」(啟動偵錯工作階段) 面板:

      啟動「偵錯工作階段」窗格

    3. (選用) 從「篩選器」下拉式清單中選取要套用的篩選器,即可篩選您建立的偵錯工作階段中的所有交易。預設值為 None,其中包含偵錯資料中的所有交易。

      如要瞭解如何使用篩選器,請參閱「在偵錯工作階段中使用篩選器」。 如要瞭解內建篩選器,請參閱「使用預先定義的篩選器」。

    4. 按一下「Start Debug Session」

      Apigee UI 現在會在「Debug details」面板中,顯示目前偵錯工作階段的詳細資料,包括 ID。

      雖然 UI 建立了偵錯工作階段,但您仍需傳送要求,系統才能收集資料。

      您可以在「偵錯詳細資料」面板中執行下列操作:

      圖示 函式 說明
      下載圖示 下載 下載有效工作階段的偵錯資料,然後離線查看
      退貨圖示 退還款項 返回上一個面板,即可開始另一個偵錯工作階段。目前的偵錯工作階段會持續進行,直到達到逾時或交易次數上限為止。
      「刪除」圖示 刪除 刪除目前所選偵錯工作階段的資料。這會刪除工作階段的資料,但不會停止工作階段。

      在使用者介面中啟動的偵錯工作階段,預設逾時時間為 10 分鐘 (透過 API 啟動的工作階段則不同)。

      只要點選「開始偵錯工作階段」,時鐘就會開始計時,因此您可以選擇等到下一個步驟完成後,再點選「開始偵錯工作階段」,盡量收集更多資料。

  6. 在「傳送要求」面板中:
    1. 在「URL」欄位中,輸入要傳送要求的端點。視需要將查詢字串參數附加至網址。您無法提交 GET 以外的要求。
      如何找出端點網址
      1. 依序前往「管理」>「環境」>「群組」
      2. 這個網址是您要用來執行偵錯工作階段的相應環境主機名稱
    2. 「傳送要求」面板只會顯示以 UI 為基礎的要求資料。但請注意,偵錯也會記錄並非由 UI 啟動的要求資料。

    3. 按一下「傳送」

      Apigee 會向指定網址傳送要求。每次點選「傳送」時,Apigee UI 都會在「Debug details」(偵錯詳細資料) 面板中記錄要求。

      以下範例顯示多個成功的要求 (產生 HTTP 狀態碼 200):

      擷取的偵錯要求

      按一下「複製」,複製偵錯 ID 以供日後參考或查詢。

      此外,UI 會在「Send Requests」(傳送要求) 面板的「Transaction Map」(交易地圖) 和「Phase Details」(階段詳細資料) 部分顯示偵錯資料,並填入「Proxy Endpoint」(Proxy 端點)、「Request Headers」(要求標頭)、「Request Content」(要求內容) 和「Properties」(屬性) 部分,如下例所示:

      擷取的偵錯要求

      如要進一步瞭解「傳送要求」檢視畫面中的階段、交易地圖和其他部分,請參閱「如何解讀偵錯」一文。

    偵錯工作階段現已啟用,並記錄所有要求的資料 (除非已篩除)。工作階段會保持有效,直到達到逾時時間或工作階段中記錄的要求數超過上限為止。

  7. 您可以在 UI 中建立任意數量的偵錯工作階段。詳情請參閱啟動其他偵錯工作階段

API

如要使用 API 建立偵錯工作階段,請對下列資源發出 POST 要求:

https://apigee.googleapis.com/v1/organizations/$ORG/environments/$ENV/apis/$API/revisions/$REV/debugsessions

您也可以採取下列做法:

  • 設定偵錯工作階段的長度 (以秒為單位),方法是將 timeout 屬性做為查詢參數傳遞,或放在要求主體中。如果兩者皆指定,系統會優先採用要求內文中指定的 timeout 值。
  • 在偵錯工作階段中,將 filter 屬性傳遞至要求主體,即可篩選資料

以下範例說明如何使用 API 建立偵錯工作階段。

curl "https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions" \
      -X POST \
      -H "Authorization: Bearer $TOKEN"
    

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

以下是回應範例:

{
      "name":"56382416-c4ed-4242-6381-591bbf2788cf",
      "validity":300,
      "count":10,
      "tracesize":5120,
      "timeout":"600"
    }

後續對 API 代理伺服器的要求 (直到達到工作階段時間或要求數量上限為止) 都會經過評估,並可能儲存在偵錯工作階段資料中。

詳情請參閱「建立偵錯工作階段 API」。

使用 API 設定偵錯工作階段長度

如要使用 API 設定偵錯工作階段的長度,請在偵錯工作階段建立要求中加入下列內容做為酬載:

{
      "timeout":"debug_session_length_in_seconds"
    }

下列範例會建立長度僅 42 秒的偵錯工作階段:

curl https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions"
      -X "POST" \
      -H "Authorization: Bearer $TOKEN" \
      -d ' {
        "timeout":"42"
      } '

您只能在偵錯工作階段建立要求中設定工作階段的 timeout,工作階段建立後就無法變更時長。

timeout 的預設值為 300 (5 分鐘)。最長為 600 秒 (10 分鐘)。

複製 Proxy 網址

這個網址可用來將要求傳送至 API Proxy。

Cloud 控制台 UI

Debug v2 (最新)

如何找出並複製 Proxy 網址:

  1. 在「Debug session」窗格的「URL」欄位中,按一下「Copy」圖示
  2. 如果沒有開啟偵錯工作階段
    1. 在 Google Cloud 控制台中,依序前往「管理」>「環境」>「環境群組」
    2. 這個網址是您要用來執行偵錯工作階段的相應環境「主機名稱」。選取並複製。

如要選取其他 Proxy 網址:

  1. 在「Debug session」窗格的「URL」欄位中,按一下「Edit」圖示
  2. 視需要進行變更,然後按一下「更新」
  3. 如果沒有開啟偵錯工作階段
    1. 找出 Proxy 網址。
    2. 依序按一下「更多」和「編輯」
    3. 視需要進行變更,然後按一下「更新」

Debug v1

如何找出並複製 Proxy 網址:

  1. 在 Google Cloud 控制台中,依序前往「管理」>「環境」>「環境群組」
  2. 這個網址是您要用來執行偵錯工作階段的相應環境「主機名稱」。選取並複製。

如要編輯 Proxy 網址,請按照下列步驟操作:

  1. 找出 Proxy 網址。
  2. 依序按一下「更多」和「編輯」
  3. 視需要進行變更,然後按一下「更新」

傳統版 UI

如何找出並複製端點網址:

  1. Apigee 使用者介面中,依序前往「管理」>「環境」>「群組」。 系統會將您重新導向至 Google Cloud 控制台的「管理」>「環境」>「環境群組」頁面。
  2. 網址是您要執行偵錯工作階段的相應環境主機名稱。選取並複製。

如要編輯目標網址,請按照下列步驟操作:

  1. 找出端點網址。
  2. 依序按一下「更多」和「編輯」
  3. 視需要進行變更,然後按一下「更新」

在 UI 中啟動另一個偵錯工作階段

您可以在 UI 中建立任意數量的偵錯工作階段。

Cloud 控制台 UI

在偵錯工作階段進行期間,您可以在 Apigee UI 中啟動另一個工作階段。如要這麼做,請在「Debug session」(偵錯工作階段) 窗格中,按一下「Close」(關閉)

按一下即可放大圖片 關閉並返回「Start a debug session」面板

使用者介面會返回「開始偵錯工作階段」面板,您可以在這裡開始新的偵錯工作階段。

傳統版 UI

在偵錯工作階段進行期間,您可以在 Apigee UI 中啟動另一個工作階段。如要這麼做,請在「Debug details」(偵錯詳細資料) 面板中,按一下返回箭頭圖示 ():

返回箭頭,可返回「開始偵錯工作階段」面板

使用者介面會返回「開始偵錯工作階段」面板,您可以在這裡開始新的偵錯工作階段。

偵錯工作階段何時結束?

您無法直接停止進行中的偵錯工作階段,不過,您可以刪除有效工作階段的資料,詳情請參閱「刪除偵錯工作階段資料」。

建立偵錯工作階段時,有兩個屬性會決定工作階段何時結束:

  • 逾時:您在工作階段期間收集資料的時間長度。 預設長度取決於工作階段的啟動方式 (透過 UI 或 API)。最大值為 600 秒 (或 10 分鐘)。
  • count:單一工作階段每個訊息處理器記錄的要求數量上限。由於大多數叢集中的訊息處理器數量會變動,因此計數的影響可能難以預測。Apigee 不建議自訂這項設定。

達到逾時時間或計數時,該訊息處理器的偵錯工作階段就會結束。

下列字詞用於說明偵錯工作階段的狀態:

  • 有效工作階段是指尚未逾時或超出次數的偵錯工作階段。有效的工作階段仍會記錄未經過濾的要求資料。
  • 已完成的工作階段是指已逾時或超出計數的偵錯工作階段。已完成的工作階段不會再記錄新要求的資料,且資料會在工作階段結束後 24 小時內刪除。

如何解讀偵錯工作階段

本節將概略介紹偵錯工作階段。

另請參閱:

Cloud 控制台 UI

Debug v2 (最新)

偵錯工具主要分為兩部分:交易窗格和階段詳細資料:

  • 交易窗格會使用圖示標示 API Proxy 交易期間發生的每個重要步驟,包括政策執行、條件步驟和轉換。將滑鼠游標懸停在任一圖示上,即可查看摘要資訊。要求流程步驟會顯示在交易地圖頂端,回應流程步驟則顯示在底部。
  • 「階段詳細資料」窗格會列出 Proxy 內部處理作業的相關資訊,包括已設定或讀取的變數、要求和回應標頭等。按一下任一圖示,即可查看該步驟的階段詳細資料

Debug v1

這個版本的偵錯工具會使用甘特圖,顯示要求和回應中的步驟。

傳統版 UI

偵錯工具主要分為兩部分:交易地圖和階段詳細資料:

  • 交易地圖會使用圖示標示 API Proxy 交易期間發生的每個重要步驟,包括政策執行、條件步驟和轉換。將滑鼠游標懸停在任一圖示上,即可查看摘要資訊。交易地圖頂端會顯示要求流程步驟,底部則會顯示回應流程步驟。
  • 工具的「階段詳細資料」部分會列出 Proxy 內部處理作業的相關資訊,包括已設定或讀取的變數、要求和回應標頭等。按一下任一圖示,即可查看該步驟的階段詳細資料

交易窗格

交易窗格會顯示要求和回應中的步驟。

Cloud 控制台 UI

Debug v2 (最新)

以下是範例偵錯工具交易窗格,並標示主要 Proxy 處理區段:

按一下即可放大圖片 偵錯圖表:顯示「開始 Proxy 要求」到「開始目標要求」到「開始目標回應」到「開始 Proxy 回應」到「開始 Proxy 後端用戶端流程」

Debug v1

如要在「偵錯」檢視畫面中查看交易 (要求和回應) 的詳細資料,請按一下交易的資料列,在右側窗格中顯示 甘特圖,當中會顯示要求和回應的步驟。

右側窗格中的交易步驟甘特圖。

圖表的橫軸表示每個步驟發生的時間,以毫秒為單位。每個步驟都以矩形表示,從步驟的開始時間延伸至結束時間。

您可以使用偵錯窗格右下方的「Back」和「Next」按鈕,逐步執行偵錯工作階段。請點選下列值:

  • 返回:將所選資料列移至圖表中的上一個步驟。
  • 選取「下一步」,將所選列移至圖表的下一個步驟。

在上述範例中,圖表顯示回應中執行的兩項政策:

  • ResponsePayload
  • 新增 CORS

按一下任一步驟即可查看詳細資料。 舉例來說,如果您點選「新增 CORS」政策,甘特圖旁就會顯示詳細資料,如下所示。

新增 CORS 政策詳細資料。

如果您決定變更政策設定,可以點選「開發」切換至「開發」檢視畫面,您會在「回應後續流程」中看到相同的兩項政策。

查看與偵錯工作階段相關的「開發」分頁。

傳統版 UI

以下是偵錯工具地圖範例,標示了主要 Proxy 處理區段:

偵錯工具的交易地圖

偵錯圖表:顯示「開始 Proxy 要求」到「開始目標要求」到「開始目標回應」到「開始 Proxy 回應」到「開始 Proxy 後端用戶端流程」

交易窗格圖例

以下說明交易窗格中的圖示:

Cloud 控制台 UI

Debug v2 (最新)

本節說明交易窗格中的圖示:

政策圖示

每種政策都有專屬圖示。這些圖示可讓您查看政策是否依正確順序執行,以及是否成功。您可以點選政策圖示,查看政策的執行結果,以及結果是否符合預期。舉例來說,您可以查看訊息是否已正確轉換,或是是否正在快取。

標準政策可強化 API,藉此控管流量、增進效能、強制執行安全措施及提高 API 的實用性,無須編寫程式碼或修改後端服務。

透過可擴充政策,您可以在 API 代理中加入自訂邏輯。 您可以使用這些政策新增標準政策未提供的功能。

如要進一步瞭解政策和類別,請參閱「 政策參考資料總覽」。

如要篩選表格:

  • 選取一項政策類型和/或一項政策類別。
  • 按一下「名稱」欄標題,即可依政策名稱排序表格。
  • 輸入關鍵字,搜尋政策名稱。

政策類型

政策類別

圖示 名稱 類型 類別
manage_search ParseDialogflowRequest 政策 可擴充 對話流程
chat_add_on SetDialogflowResponse 政策 可擴充 對話流程
stacked_line_chart DataCapture 政策 可擴充 擴充功能
display_external_input ExternalCallout 政策 標準 擴充功能
flowsheet FlowCallout 政策 可擴充 擴充功能
自動化 IntegrationCallout 政策 可擴充 擴充功能
JavaCallout 政策圖示 JavaCallout 政策 可擴充 擴充功能
JavaScript 政策圖示 JavaScript 政策 可擴充 擴充功能
add_notes MessageLogging 政策 可擴充 擴充功能
chat_paste_go PublishMessage 政策 標準 擴充功能
PythonScript 政策圖示 PythonScript 政策 可擴充 擴充功能
integration_instructions 服務說明政策 可擴充 擴充功能
自動化 SetIntegrationRequest policy 可擴充 擴充功能
waterfall_chart TraceCapture 政策 可擴充 擴充功能
cloud_done AccessEntity 政策 可擴充 中介服務
account_tree 資產條件政策 標準 中介服務
edit_square AssignMessage 政策 可擴充 中介服務
登入 ExtractVariables 政策 可擴充 中介服務
GraphQL 政策圖示 GraphQL 政策 標準 中介服務
sync_alt HTTPModifier 政策 標準 中介服務
sync_alt JSONtoXML 政策 標準 中介服務
account_tree KeyValueMapOperations 政策 可擴充 中介服務
sync_alt MonetizationLimitsCheck 政策 可擴充 中介服務
cloud_done OASValidation 政策 標準 中介服務
檢舉 RaiseFault 政策 標準 中介服務
sync_alt ReadPropertySet 政策 標準 中介服務
cloud_done SOAPMessageValidation 政策 標準 中介服務
sync_alt XMLtoJSON 政策 標準 中介服務
cloud_done XSLTransform 政策 可擴充 中介服務
鎖定 AccessControl 政策 標準 安全性
security BasicAuthentication 政策 可擴充 安全性
connect_without_contact CORS 政策 標準 安全性
鎖定 DecodeJWS 政策 可擴充 安全性
鎖定 DecodeJWT 政策 標準 安全性
密碼金鑰 DeleteOAuthV2Info 政策 可擴充 安全性
鎖定 GenerateSamlAssertion 政策 可擴充 安全性
鎖定 GenerateJWS 政策 可擴充 安全性
鎖定 GenerateJWT 政策 可擴充 安全性
密碼金鑰 GetOAuthV2Info 政策 可擴充 安全性
鎖定 HMAC 政策 標準 安全性
security JSONThreatProtection 政策 可擴充 安全性
密碼金鑰 OAuthV2 政策 可擴充 安全性
security RegularExpressionProtection 政策 可擴充 安全性
密碼金鑰 RevokeOAuthV2 政策 可擴充 安全性
密碼金鑰 SetOAuthV2Info 政策 可擴充 安全性
鎖定 ValidateSamlAssertion 政策 可擴充 安全性
key VerifyAPIKey 政策 可擴充 安全性
密碼金鑰 VerifyIAM policy 可擴充 安全性
鎖定 VerifyJWS 政策 可擴充 安全性
鎖定 VerifyJWT 政策 標準 安全性
security XMLThreatProtection 政策 可擴充 安全性
已快取 InvalidateCache 政策 可擴充 流量管理
已快取 LookupCache 政策 可擴充 流量管理
已快取 PopulateCache 政策 可擴充 流量管理
bar_chart_4_bars 配額政策 可擴充 流量管理
repartition ResetQuota 政策 可擴充 流量管理
已快取 ResponseCache 政策 可擴充 流量管理
emergency_home SpikeArrest 政策 標準 流量管理

其他圖示

下表說明交易窗格中顯示的其他圖示用途。這些圖示會標示整個 Proxy 流程中每個重要的處理步驟。

如要篩選表格:

  • 選取一種圖示類型。
  • 按一下「名稱」欄標題,即可依圖示名稱排序表格。
  • 輸入關鍵字來搜尋圖示名稱。

圖示類型

圖示 名稱 類型 說明
監控 用戶端應用程式 標準交易 將要求傳送至 API Proxy ProxyEndpoint 的用戶端應用程式。
圓形 過渡端點 標準交易 圓圈標示 Proxy 流程中的過渡端點。當要求從用戶端傳入、要求傳送至目標、回應從目標傳回,以及回應傳回用戶端時,這些回呼都會存在。
stat_0 流程區隔 標準交易

菱形表示 API 代理流程中流程區段的開頭。流程區隔包括:ProxyEndpoint 要求、TargetEndpoint 要求、TargetEndpoint 回應和 ProxyEndpoint 回應。區隔包含 PreFlow、Conditional Flows 和 PostFlow。

詳情請參閱「 條件式流程」。

條件為 true 圖示 條件流程為 true 標準交易

評估結果為 True 的條件流程 (例如評估結果為 trueif 陳述式)。如要瞭解條件流程,請參閱條件流程。

請注意,部分條件是由 Apigee 產生。舉例來說,以下是 Apigee 用來檢查 ProxyEndpoint 是否發生錯誤的運算式:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))

條件為 false 的圖示 條件式流程為 false 標準交易

評估結果為 false 的條件流程。如要瞭解條件式流程,請參閱 條件式流程

請注意,部分條件是由 Apigee 產生。舉例來說,以下是 Apigee 用來檢查 TargetEndpoint 是否發生錯誤的運算式:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

流程資訊圖示 流程資訊 標準交易 代表 API Proxy 執行的背景資訊,會因流程中的時間點而異。包括 Proxy 設定的詳細資料、目前的執行狀態 (例如 PreFlow、PostFlow、流程掛鉤)、政策執行詳細資料,以及政策執行期間填入的變數,指出該時間點的 Proxy 具體狀態。
done_all 流程執行作業 標準交易 標記流程執行的開始或結束時間,指出不同流程區隔的時間範圍,以視覺化方式劃分流程界線,並指出流程執行順序。
commit 流程處理 標準交易 表示流程中正在進行的處理作業,代表政策和流程邏輯的執行期間。
bar_chart Apigee Analytics 擷取的資料 標準交易 表示 Analytics 動作已在背景中發生。
location_on 後端服務 標準交易 接收要求的後端服務。 API Proxy 呼叫的後端目標。
已停用圖示 已停用 步驟狀態 政策停用時,政策圖示上會顯示這個圖示。您可以使用公開 API 停用政策。請參閱 API Proxy 設定參考資料
錯誤圖示 錯誤 步驟狀態 當政策步驟條件評估結果為 false 時 (請參閱「 含有流程變數的條件」),或每當執行 RaiseFault 政策時,政策圖示上就會顯示這個圖示。
已略過圖示 已略過 步驟狀態 如果步驟條件評估結果為 false,導致政策未執行,政策圖示上就會顯示這個圖示。詳情請參閱「 含有流程變數的條件」。

Debug v1

這個版本會使用甘特圖顯示要求和回應中的步驟,但不會提供圖例。

傳統版 UI

下表說明交易地圖中顯示的圖示用途。這些圖示會標示整個 Proxy 流程中每個重要的處理步驟。

交易地圖圖示

用戶端應用程式圖示 將要求傳送至 API Proxy ProxyEndpoint 的用戶端應用程式。
過渡端點圖示 圓圈標示 Proxy 流程中的過渡端點。當用戶端傳送要求、要求傳送至目標、目標傳回回應,以及回應傳回用戶端時,這些記錄都會存在。
流程區隔圖示

高條形表示 API 代理流程中流程區隔的開頭。流程區隔包括:ProxyEndpoint 要求、TargetEndpoint 要求、TargetEndpoint 回應和 ProxyEndpoint 回應。區隔包含 PreFlow、Conditional Flows 和 PostFlow。

詳情請參閱「設定流程」。

數據分析圖示

表示 Analytics 動作已在背景中發生。

實際狀況圖示

評估結果為 true 的條件式流程。如需條件式流程的簡介,請參閱「設定流程」。

請注意,部分條件是由 Apigee 產生。舉例來說,以下是 Apigee 用來檢查 ProxyEndpoint 是否發生錯誤的運算式:

((error.state equals PROXY_REQ_FLOW) or (error.state equals PROXY_RESP_FLOW))
錯誤狀況圖示

評估結果為 false 的條件流程。如需條件流程的簡介,請參閱「設定流程」。

請注意,部分條件是由 Apigee 產生。舉例來說,以下是 Apigee 用來檢查 TargetEndpoint 是否發生錯誤的運算式:

(((error.state equals TARGET_REQ_FLOW) or (error.state equals TARGET_RESP_FLOW)) or ((error.state equals REQ_SENT) or (error.state equals RESP_START)))

xml 到 json 圖示

配額圖示

政策。每種政策都有專屬圖示。這個政策適用於 AssignMessage 政策。這些圖示可讓您查看政策是否依正確順序執行,以及是否成功執行。您可以點選政策圖示,查看政策的執行結果,以及結果是否符合預期。舉例來說,您可以查看訊息是否已正確轉換,或是是否正在快取。

如果政策執行正確,系統會顯示勾號。如果發生錯誤,圖示上會顯示紅色驚嘆號。

伺服器圖示 API Proxy 呼叫的後端目標。
毫秒圖示 時間軸會顯示處理時間 (以毫秒為單位),指出完成處理作業所需的時間。比較經過的時間區隔,有助於找出執行時間最長,導致 API 呼叫速度變慢的政策。
epsilon 圖示 Epsilon 表示的時間範圍小於一毫秒。
已停用圖示

已停用。政策停用時,政策圖示上會顯示這個圖示。您可以使用公開 API 停用政策。請參閱 API Proxy 設定參考資料

錯誤圖示 錯誤。當「政策步驟」條件評估結果為 false 時 (請參閱「流程變數和條件」),或每當執行 RaiseFault 政策時,政策圖示上就會顯示此圖示。
已略過圖示 已略過。如果步驟條件評估結果為 false,導致政策未執行,政策圖示上就會顯示這個圖示。詳情請參閱「流程變數和條件」。

階段詳細資料窗格

階段詳細資料窗格會顯示每個處理步驟的 Proxy 狀態。

Cloud 控制台 UI

Debug v2 (最新)

階段詳細資料窗格會顯示每個處理步驟的 Proxy 狀態。以下是提供的部分詳細資料。 按一下偵錯工具中的任何圖示,即可查看所選步驟的詳細資料,或使用「>」「Next」或「<」「Back」按鈕,在各個步驟之間移動。

下表說明階段詳細資料窗格中提供的詳細資料。

階段詳細資料 說明
變數

列出政策讀取並指派值的流程變數。另請參閱「 使用流程變數」。

要求標頭 列出 HTTP 要求標頭。
要求內容 顯示 HTTP 要求主體。
屬性 屬性代表 API Proxy 的內部狀態。這些資料欄預設不會顯示。
目標端點 指出選取要執行的 TargetEndpoint。
回應標頭 列出 HTTP 回應標頭。
回應內容 顯示 HTTP 回應主體。

Debug v1

按一下甘特圖中的步驟,即可查看階段詳細資料,或使用「>」「下一步」或「<」「上一步」按鈕逐步執行偵錯工作階段。

傳統版 UI

工具的「階段詳細資料」部分會顯示每個處理步驟的 Proxy 狀態。以下是「階段詳細資料」中提供的部分詳細資料。按一下偵錯工具中的任何圖示,即可查看所選步驟的詳細資料,或使用「下一步」/「上一步」按鈕在各個步驟之間移動。

階段詳細資料 說明
Proxy 端點 指出選取要執行的 ProxyEndpoint 流程。API Proxy 可以有多個具名 Proxy 端點。
變數

列出政策讀取並指派值的流程變數,另請參閱「使用流程變數」。

注意

  • 等號 (=) 表示指派給變數的值。
  • 如果等號加上刪除線 (≠),表示變數無法指派值,因為變數為唯讀,或政策執行時發生錯誤。
  • 如果欄位空白,表示已讀取變數值。
要求標頭 列出 HTTP 要求標頭。
要求內容 顯示 HTTP 要求主體。
屬性 屬性代表 API Proxy 的內部狀態。這些欄位預設不會顯示。
目標端點 指出選取要執行的 TargetEndpoint。
回應標頭 列出 HTTP 回應標頭。
回應內容 顯示 HTTP 回應主體。
PostClientFlow 顯示 PostClientFlow 的相關資訊,要求傳回給要求用戶端應用程式後,就會執行 PostClientFlow。只有 MessageLogging 政策可以附加至 PostClientFlow。PostClientFlow 目前主要用於測量回應訊息的開始和結束時間戳記之間的時間間隔。

時間軸

時間軸會顯示處理時間 (以毫秒為單位),比較經過的時間區隔,有助於找出執行時間最長,導致 API 呼叫速度變慢的政策。

Epsilon 表示的時間範圍小於一毫秒。

Cloud 控制台 UI

Debug v2 (最新)

按一下即可放大圖片 Debug v2 使用者介面中的時間軸

Debug v1

按一下即可放大圖片 Debug v1 使用者介面中的時間軸

傳統版 UI

按一下即可放大圖片 傳統版 UI 中的時間軸

展開及收合群組

本節說明如何在「交易」窗格中展開及收合群組。

Cloud 控制台 UI

Debug v2 (最新)

要求和回應的交易步驟會依先前在「開發」分頁中設定的方式分組;依共用流程分組。例如:前置 Proxy、後置 Proxy、前置目標和後置目標。

每個群組都會清楚顯示相關政策、條件、共用流程和流程資訊。

系統預設會將共用流程分組並收合。

您可以在「交易」窗格中執行下列動作:

項目 名稱 說明
展開所有滑桿
<img <="" alt="collapse all slider" class="screenshot" src="/static/apigee/docs/api-platform/debug/images/collapse_all_slider.png" td="" width="" />
全部展開
全部收合
展開或收合所有群組。
展開群組圖示
收合群組圖示
展開
收合
展開或收合群組。

另請參閱:

Debug v1

這個版本不支援展開及收合群組。

傳統版 UI

這個版本不支援展開及收合群組。

您可以在要求或回應中搜尋字詞或詞組。

Cloud 控制台 UI

Debug v2 (最新)

搜尋功能可讓您在要求或回覆中尋找特定字詞或詞組。

注意事項:

  • 搜尋字詞不區分大小寫
  • 搜尋功能適用於單一交易,也就是說,不會搜尋整個偵錯工作階段中的所有交易。
  • 搜尋功能會展開已收合的部分,但不會顯示因 檢視選項選取項目而遭篩除的節點資訊。

如要搜尋內容,請按照下列步驟操作:

  1. 在搜尋框中輸入文字。
  2. 按下 Enter 鍵。

    搜尋結果會在「交易」窗格和「階段詳細資料」窗格中醒目顯示。

  3. 按一下 keyboard_arrow_up 「返回」keyboard_arrow_down 「下一步」,即可前往下一個或上一個步驟。
按一下即可放大圖片 Debug v2 UI 中的搜尋結果

Debug v1

這個版本不支援搜尋功能。

傳統版 UI

這個版本不支援搜尋功能。

縮放

你可以使用縮放功能控制交易窗格的檢視畫面。

Cloud 控制台 UI

Debug v2 (最新)

縮放功能可控制「交易」窗格的檢視畫面,如下所示:

按一下即可放大圖片 偵錯第 2 版縮放控制項
圖示 說明
100% 目前的縮放等級。預設值為 100%。
fit_screen 依螢幕大小自動調整
zoom_in 放大
zoom_out 縮小
youtube_searched_for 重設縮放設定

Debug v1

這個版本不支援 Zoom。

傳統版 UI

這個版本不支援 Zoom。

使用偵錯工具進行偵錯

偵錯功能可讓您查看 API Proxy 的許多內部詳細資料。例如:

  • 您可以一目瞭然哪些政策執行正確,哪些政策執行失敗。
  • 假設您透過其中一個 Analytics 資訊主頁發現,某個 API 的效能異常下降。現在,您可以使用「偵錯」功能,找出發生瓶頸的位置。「Debug」會顯示每個處理步驟完成所需的時間 (以毫秒為單位)。如果發現某個步驟耗時過長,可以採取修正措施。
  • 您可以檢查傳送至後端的標頭、查看政策設定的變數等。
  • 驗證基本路徑可確保政策將訊息轉送至正確的伺服器。

在偵錯工作階段中篩選資料

建立偵錯工作階段時,您可以為該工作階段新增篩選器,讓 Apigee 只傳回您需要的資料。 篩選器是 Apigee 針對要求和回應訊息評估的條件陳述式,可判斷是否應將偵錯資料納入偵錯工作階段。舉例來說,您可以篩除 HTTP 回應碼小於 599 的所有要求,或是比較要求中的值與自訂變數。

注意事項:

  • 遭篩除而未納入偵錯工作階段的要求,不會計入偵錯工作階段的交易數上限
  • Apigee 不支援在查詢字串中新增篩選器。
  • 工作階段開始後,就無法在偵錯工作階段中新增篩選器。如要新增篩選器,必須先建立偵錯工作階段。

使用篩選器

使用 Apigee 使用者介面或 API 建立偵錯工作階段時,請使用篩選器,如下列各節所述。

Cloud 控制台 UI

UI 中建立偵錯工作階段時,您可以在「篩選器」下拉式清單中選擇預先定義的篩選器,套用至「開始偵錯工作階段」面板,也可以選擇「自訂篩選器」,然後使用篩選器語法建立自己的篩選器。

傳統版 UI

使用者介面中建立偵錯工作階段時,您可以從「篩選器」下拉式清單中選擇預先定義的篩選器,然後套用至「開始偵錯工作階段」面板,也可以選擇「自訂篩選器」,並使用篩選器語法建立自己的篩選器。

API

如要使用 API 建立含有篩選器的偵錯工作階段,請在偵錯工作階段建立要求中加入下列內容做為酬載:

{
  "filter":"filter_body"
}

如要瞭解如何建構篩選器,請參閱篩選器語法

以下範例會建立偵錯工作階段,其中只包含標頭 A 等於 42 且標頭 B 等於 43 的交易,或錯誤碼為 ExpectedEOF 的交易:

curl -H "Authorization: Bearer $TOKEN" -X "POST"
  https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions
  -d ' {
    "filter":"(request.header.A == '42' && request.header.B == '43') || fault.code == 'jsonparser.ExpectedEOF'"
  } '

您只能在建立偵錯工作階段要求時定義篩選器,無法為現有偵錯工作階段新增篩選器,也無法從有效偵錯工作階段中移除篩選器。

篩選器語法

篩選器支援與 Apigee 條件相同的語法,詳情請參閱「條件參考資料」。包括:

此外,篩選器可以存取「流程變數參考資料」中說明的所有流程變數,以及自訂變數。下列範例僅顯示部分可在篩選器中使用的可能流程變數:

# Response codes:
  response.status.code <= 599
  response.status.code >=301 && response.status.code <=420

# Requests/responses:
  request.verb == "GET"
  request.header.A == 'B' || request.queryparam.X == 'Y'

# Query parameters:
  request.queryparam.myparam == 'fish'
  (request.queryparam.param1 == 'X' || request.queryparam.param2 == 'Y') && request.queryparam.param3 == 'Z'

# Faults:
  fault.code != 'messaging.runtime.RouteFailed'
  fault.name == 'IPDeniedAccess'

如要瞭解如何使用自訂變數,請參閱 Apigee 社群中的「如何在 Apigee 中使用自訂屬性」。

預先定義的 UI 篩選器

Apigee 使用者介面提供一組常見的篩選器,因此您不必自行編寫自訂篩選器。下表匯總了預先定義的篩選條件。

篩選條件名稱 說明
Response Time Greater Than

檢查延遲問題,包括:

  • target.duration目標延遲,或以毫秒為單位,表示要求傳送至目標並從目標接收所需的時間 (計算方式為 target.received.end.timestamptarget.sent.start.timestamp 之間的差異)
  • client.duration用戶端延遲,也就是要求傳送至用戶端並從用戶端接收所需的時間 (以毫秒為單位),計算方式為 client.received.end.timestampclient.sent.start.timestamp 之間的差異

例如:

target.duration > 420 && client.duration > 1000

詳情請參閱流程變數參考資料中的 clienttarget

Response Code

檢查 HTTP 回應代碼是否符合指定值,例如:

response.status.code <= 599
Header

檢查指定要求標頭是否等於指定值,例如:

request.header.cache-control.1 == "16544"
Path

檢查要求是否符合指定路徑。您可以在值中使用萬用字元比對,例如:

request.path == /myproxy/customer/4*
Query Param

檢查指定的請求查詢參數是否等於指定值;例如:

request.queryparam.lang == "language:en-us"
Custom

可插入自己的運算式。您可以使用「流程變數參考資料」中的任何物件,以及「條件參考資料」中的語法。此外,您也可以使用自訂變數。

如要進一步瞭解如何建立自訂篩選器,請參閱「篩選器語法」。

 

查看偵錯工作階段

Apigee 會將偵錯工作階段資料儲存 24 小時。您無法設定這個值;24 小時後,資料將不再提供。在此之前,您都可以查看偵錯工作階段。

如要使用 Apigee 使用者介面或 API 查看最近的偵錯工作階段,請參閱下列章節。

Cloud 控制台 UI

Debug v2 (最新)

使用 Google Cloud 控制台查看偵錯工作階段

  1. 登入Google Cloud 控制台
  2. 依序按一下「Proxy development」>「API Proxies」

  3. 按一下要偵錯的 Proxy。
  4. 按一下「Debug」分頁標籤。
  5. 「Recent debug sessions」(近期偵錯工作階段) 會顯示可用偵錯工作階段的清單。
  6. 按一下要查看的會議連結。

Debug v1

如要使用新版 Proxy 編輯器查看偵錯工作階段,請按照下列步驟操作:

  1. 登入Google Cloud 控制台
  2. 選取「Proxy development」>「API Proxies」

  3. 選取要偵錯的 Proxy。
  4. 按一下「Debug」分頁標籤。
  5. 「Recent debug sessions」(近期偵錯工作階段) 會顯示可用偵錯工作階段的清單。
  6. 按一下要查看的會議連結。

傳統版 UI

如要使用傳統 Proxy 編輯器查看偵錯工作階段,請按照下列步驟操作:

  1. 登入 Apigee 使用者介面
  2. 從主要檢視畫面選取「API Proxy」
  3. 選取要偵錯的 Proxy。
  4. 按一下「Deployments」(部署作業) 檢視畫面右上方的「Debug」(偵錯) 分頁標籤
  5. 在「最近的偵錯工作階段」面板中:
    1. 在「環境」下拉式清單中,選取要查看偵錯工作階段的 API Proxy 環境。
    2. 在「Rev」下拉式清單中,選取要查看偵錯工作階段的 API Proxy 修訂版本號碼。

    Apigee 使用者介面會顯示可用的偵錯工作階段清單。

  6. 按一下要查看的會議連結。

    Apigee 使用者介面會載入偵錯工作階段,並在「Send Requests」(傳送要求) 面板中填入偵錯資料。

API

您可以使用這個 API 執行以下作業:

使用 API 查看所有偵錯工作階段

如要查看環境中 API Proxy 修訂版本定義的所有近期偵錯工作階段,請對下列資源發出 GET 要求:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions

您可以選擇指定下列其中一個查詢參數,控制傳回的資料量:

  • pageSize:要列出的偵錯工作階段數量上限。頁面大小預設為 25。
  • pageToken:先前呼叫傳回的頁面權杖,可用於擷取下一頁。

以下範例說明如何在 test 環境中,查看 helloworld API Proxy 修訂版本 1 的偵錯工作階段。

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions" \
-X GET \
-H "Authorization: Bearer $TOKEN"

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

回應會包含 sessions 物件,其中列出目前有效的偵錯工作階段,如下列範例所示:

{
"sessions": [
{
"id": "a423ac73-0902-4cfa-4242-87a353a84d87",
"timestamp_ms": 1566330186000
},
{
"id": "f1eccbbe-1fa6-2424-83e4-3d063b47728a",
"timestamp_ms": 1566330286000
}
]
}

回應只會納入至少包含一筆交易的偵錯工作階段;不含任何交易的偵錯工作階段不會列入這份清單。

詳情請參閱「列出偵錯工作階段 API」。

使用 API 查看偵錯工作階段的所有交易

如要查看偵錯工作階段的交易清單,請對下列資源發出 GET 要求:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

其中 debugsession 是您查看偵錯工作階段時傳回的偵錯工作階段 ID。

以下範例說明如何在 test 環境中,查看 helloworld API 修訂版本 1 的偵錯工作階段交易。

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
-X GET \
-H "Authorization: Bearer $TOKEN"

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

回應會包含交易 ID 陣列,如下列範例所示:

[
"myorg-test-ver-5qxdb-64",
"myorg-test-ver-5qxdb-65",
"myorg-test-ver-5qxdb-66",
"myorg-test-ver-5qxdb-67",
"myorg-test-ver-5qxdb-68",
"myorg-test-ver-5qxdb-69",
"myorg-test-ver-5qxdb-70",
"myorg-test-ver-5qxdb-71",
"myorg-test-ver-5qxdb-72"
]

詳情請參閱「列出偵錯工作階段資料 API」。

使用 API 查看偵錯工作階段的交易資料

如要查看偵錯工作階段的交易資料,請對下列資源發出 GET 要求:

https://apigee.googleapis.com/v1/organizations/{org}/environments/{env}/apis/{api}/revisions/{rev}/debugsessions/{debugsession}/data/{transactionId}

其中 debugsession查看偵錯工作階段時傳回的偵錯工作階段 ID,而 transactionId查看偵錯工作階段的交易清單時傳回的交易 ID。

在偵錯工作階段期間儲存的交易資料會以 JSON 格式呈現。您可以在離線偵錯工具中載入這項資料。

以下範例說明如何下載 test 環境中 helloworld API 修訂版本 1 的偵錯工作階段交易資料。

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data/myorg-test-ver-5qxdb-64" \
-X GET \
-H "Authorization: Bearer $TOKEN"

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

回應包含 JSON 酬載,內含指定交易的資料,如「下載資料結構」一文所述。

偵錯資料包含流程各部分的要求和回應資訊,格式為專屬的 JSON。您可以儲存這項資料,之後在離線偵錯工具中使用。

如果工作階段結束前未新增任何要求,回應會如下所示:

[]

詳情請參閱「取得偵錯工作階段資料 API」。

在 UI 中選取檢視選項

本節說明如何選取檢視選項,篩選 UI 中顯示的內容。

Cloud 控制台 UI

如要選擇偵錯工作階段的檢視選項,請在「檢視選項」窗格中選取或清除選項。這些檢視選項會為每位使用者保留在偵錯工作階段中。

按一下即可放大圖片 查看選項清單
選項 說明
顯示已停用的政策 顯示任何已停用的政策。您可以使用公開 API 停用政策。請參閱 API Proxy 設定參考資料
顯示已略過的政策 顯示所有略過的政策。如果步驟條件評估結果為 false,系統就不會執行政策,這時就會發生略過政策的情況。詳情請參閱「含有流程變數的條件」。
顯示所有 FlowInfo 代表流程區段內的轉場效果。
顯示所有流程條件 代表每個流程評估的條件。

傳統版 UI

如要選擇偵錯工作階段的檢視選項,請在「檢視選項」窗格中選取或清除選項:

查看選項清單

選項 說明
顯示已停用的政策 顯示任何已停用的政策。您可以使用公開 API 停用政策。請參閱 API Proxy 設定參考資料
顯示略過的階段 顯示已略過的階段。如果步驟條件評估結果為 false,系統就不會執行政策,並略過該階段。詳情請參閱「含有流程變數的條件」。
顯示所有 FlowInfo 代表流程區段內的轉場效果。
自動比較所選階段 比較所選階段與前一階段的資料。關閉這項設定,即可只查看所選階段。
顯示變數 顯示或隱藏已讀取和/或指派值的變數。
顯示屬性 屬性代表 API Proxy 的內部狀態。(預設為隱藏)。

分享偵錯工作階段

您可以與有權存取貴機構且具備必要權限的其他使用者共用偵錯工作階段。只要將瀏覽器中顯示的網址傳送給對方,即可分享偵錯工作階段。連結的有效期限為偵錯工作階段建立後 24 小時。

下載偵錯工作階段資料

您可以下載原始的偵錯結果檔案,供離線查看。下載的檔案會顯示偵錯工作階段的完整詳細資料,包括所有標頭、變數和政策的內容。

偵錯工作階段資料只能在 24 小時內下載或在使用者介面中查看。之後,Apigee 會刪除工作階段資料。

如要查看已下載的偵錯工作階段資料,請使用離線偵錯工具

Cloud 控制台 UI

Debug v2 (最新)

如要下載 Google Cloud 控制台中的目前偵錯工作階段,請按一下「Debug」檢視畫面中的「Download」

按一下即可放大圖片 下載偵錯工作階段

Debug v1

如要在新的 Proxy 編輯器中下載目前的偵錯工作階段,請按一下「偵錯」檢視畫面左側窗格中的「Download Session」

下載偵錯工作階段。

請注意,偵錯工作階段會在完成後 24 小時內刪除,因此如要在此時間後查看偵錯工作階段,請務必事先下載。

傳統版 UI

如要使用傳統 Proxy 編輯器下載目前偵錯工作階段的資料,請按照下列步驟操作:

  • 有效工作階段:按一下「偵錯詳細資料」面板中的「下載」圖示 (下載圖示)。
  • 先前工作階段:按一下「Recent debug sessions」(最近的偵錯工作階段) 面板中的工作階段名稱,如「查看偵錯工作階段」一文所述。然後按一下「Debug details」(偵錯詳細資料) 面板中的 下載圖示

API

如要使用 Apigee API 查看目前偵錯工作階段的所有交易 ID,請輸入下列指令:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
         https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data

其中 SESSION_ID 是要下載的偵錯工作階段 ID。

請參閱「 列出偵錯工作階段的交易 ID」。

如要使用 Apigee API 取得交易的偵錯資料,請輸入下列指令:

    curl -H "Authorization: Bearer $(gcloud auth print-access-token)" \
    https://apigee.googleapis.com/v1/organizations/ORG/environments/ENV/apis/PROXY/revisions/REV/debugsessions/SESSION_ID/data/TRANSACTION_ID

下載資料結構

Apigee UI 和 Apigee API 的偵錯工作階段資料下載結構不同。

Cloud 控制台 UI

使用 Apigee UI 下載資料時,資料結構如下:

  • 包含整個工作階段的所有交易
  • 將交易記錄儲存在 Messages 陣列中
  • 包含工作階段的中繼資料 (以 DebugSession 物件的形式)

傳統版 UI

使用 Apigee UI 下載資料時,資料結構如下:

  • 包含整個工作階段的所有交易
  • 將交易記錄儲存在 Messages 陣列中
  • 包含工作階段的中繼資料 (以 DebugSession 物件的形式)

API

您無法使用 Apigee API 一次查看整個工作階段的資料,只能使用 API 查看個別交易資料,如「查看偵錯工作階段」一文所述。

例如:

{
"completed": true,
"point": [
  ...
...
}

下載資料範例

以下範例會醒目顯示下載資料中的 DebugSession 中繼資料物件。這個物件後面接著 Messages 陣列,其中包含工作階段中的交易。

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
  "Messages": [
    {
      "completed": true,
      "point": [
        {
          "id": "Paused"
        },
        {
          "id": "Resumed"
        },
        {
          "id": "StateChange",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "To",
                    "value": "REQ_HEADERS_PARSED"
                  },
                  {
                    "name": "From",
                    "value": "REQ_START"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            },
            {
              "ActionResult": "RequestMessage",
              "headers": [
                {
                  "name": "accept",
                  "value": "*/*"
                },
                {
                  "name": "accept-encoding",
                  "value": "gzip,gzip,deflate,br"
                },
                {
                  "name": "content-length",
                  "value": "0"
                },
                {
                  "name": "host",
                  "value": "myorg.example.domain.net"
                },
                {
                  "name": "user-agent",
                  "value": "Google-Apigee"
                },
                {
                  "name": "x-b3-sampled",
                  "value": "0"
                },
                {
                  "name": "x-b3-spanid",
                  "value": "d4ee579206759662"
                },
                {
                  "name": "x-b3-traceid",
                  "value": "adc1e171777c237dd4ee579206759662"
                },
                {
                  "name": "x-forwarded-for",
                  "value": "66.102.8.98"
                },
                {
                  "name": "x-forwarded-proto",
                  "value": "https"
                },
                {
                  "name": "x-request-id",
                  "value": "54e05cba-4242-4490-4242-60c45c156f90"
                }
              ],
              "uRI": "/myproxy",
              "verb": "GET"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "environment.name",
                    "value": "prod"
                  },
                  {
                    "name": "environment.qualifiedname",
                    "value": "myorg__prod"
                  },
                  {
                    "name": "environment.orgname",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "organization.name",
                    "value": "myorg"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        {
          "id": "FlowInfo",
          "results": [
            {
              "ActionResult": "DebugInfo",
              "properties": {
                "property": [
                  {
                    "name": "apiproxy.qualifiedname",
                    "value": "myproxy__1"
                  },
                  {
                    "name": "apiproxy.basepath",
                    "value": "/"
                  },
                  {
                    "name": "apiproxy.revision",
                    "value": "1"
                  },
                  {
                    "name": "apiproxy.name",
                    "value": "myproxy"
                  }
                ]
              },
              "timestamp": "8-6-19 13:08:37:718"
            }
          ]
        },
        ...
      ...
    }
  ]
}

如果偵錯工作階段未包含任何要求,則 Message 陣列會是空白,如下列範例所示:

{
  "DebugSession": {
    "Retrieved": "2019-06-08T13:08:13.395Z",
    "Organization": "myorg",
    "Environment": "prod",
    "API": "myproxy",
    "Revision": "1",
    "SessionId": "a2a271aa-4242-4ac6-97cb-aec8dcb115a9"
  },
"Messages": []
}

刪除偵錯工作階段的資料

如要刪除偵錯工作階段的資料,請按照下列各節的說明,使用 Apigee 使用者介面或 API。

Cloud 控制台 UI

Debug v2 (最新)

如要在 Google Cloud 控制台中刪除偵錯工作階段,請按照下列步驟操作:

  1. 在「Debug」(偵錯) 分頁中,按一下要刪除的會話資料列。
  2. 在「Debug session」(偵錯工作階段) 窗格中,按一下「Delete」(刪除) 圖示
按一下即可放大圖片 刪除偵錯工作階段

Debug v1

如要刪除新版 Proxy 編輯器中的偵錯工作階段,請按照下列步驟操作:

  1. 選取要刪除的會話所在的列。
  2. 按一下資料列末尾的三點圖示選單,然後選取「刪除」

傳統版 UI

在偵錯工作階段的「Debug details」(偵錯詳細資料) 面板中,按一下 「刪除」圖示

API

如要使用 API 刪除所有偵錯工作階段資料,請對下列資源發出 DELETE 要求:

https://apigee.googleapis.com/v1/organizations/org/environments/env/apis/api/revisions/rev/debugsessions/debugsession/data

其中 debugsession 是您查看偵錯工作階段時傳回的偵錯工作階段 ID。

以下範例示範如何刪除 test 環境中 helloworld API 修訂版本 1 的偵錯工作階段資料。

curl "https://apigee.googleapis.com/v1/organizations/myorg/environments/test/apis/helloworld/revisions/1/debugsessions/a423ac73-0902-4cfa-4242-87a353a84d87/data" \
      -X DELETE \
      -H "Authorization: Bearer $TOKEN"
    

其中 $TOKEN 會設為您的 OAuth 2.0 存取權杖,如「取得 OAuth 2.0 存取權杖」一文所述。如要瞭解本範例使用的 curl 選項,請參閱「使用 curl」。如要瞭解所用環境變數的說明,請參閱「設定 Apigee API 要求的環境變數」。

如果成功,回應主體會留白。

偵錯工作階段資料只會保留 24 小時。如果未在期限前明確刪除,Apigee 會為您刪除。