使用偵錯功能

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

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

建立偵錯工作階段

這項工具的使用方式很簡單。您會啟動偵錯工作階段,然後向 Apigee 發出 API 呼叫,接著在 UI 中查看要求和回應資料。

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

Cloud 控制台 UI

Debug v2 (新版)

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

  1. 登入 Google Cloud 控制台
  2. 依序選取「Proxy development」>「API Proxies」
  3. 選取要偵錯的 API 代理程式。這會顯示 Proxy Editor 的「總覽」窗格。
  4. 按一下「Debug」分頁標籤。
  5. 按一下「Start Debug Session」。這會顯示「Start debug session」窗格。
  6. 在「Start debug session」窗格中:

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

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

    3. 按一下「啟動」

Apigee UI 目前會顯示「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 編輯器的「總覽」檢視畫面。

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

    「Start Debug Session」對話方塊。

    在對話方塊中:

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

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

    3. 按一下「啟動」

Apigee UI 現已顯示偵錯工作階段進度檢視畫面。

偵錯工作階段正在執行中

偵錯工作階段會記錄 10 分鐘的請求,或在擷取 15 個請求之前停止記錄。如果您使用 API 建立偵錯工作階段,可以調整 10 分鐘的上限。「Ends within」欄位會顯示工作階段剩餘的時間。

除非您向所選環境中正在偵錯的 Proxy 傳送要求,否則「Debug」窗格中不會顯示任何資訊。環境。

提出要求後,系統會在左側窗格底部顯示該要求。

「Start Debug Session」對話方塊。

注意:在偵錯工作階段處於活動狀態時,您可以在 Apigee UI 中啟動另一個工作階段。只要再次按一下「Start Debug Session」即可。

傳統版 UI

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

  1. 登入 Apigee UI
  2. 在主畫面中選取「API Proxy」
  3. 選取要偵錯的 API 代理程式。

    畫面上會顯示「總覽」分頁。

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

    分頁

    「Debug」檢視畫面會顯示:

    偵錯檢視畫面,其中包含「Start a debug session」、「Recent debug sessions」和「Send requests」窗格

  5. 在「Start a debug session」面板中:
    1. 在「Env」Env下拉式清單中,選取要偵錯的 API 代理程式環境和修訂版本號碼。
    2. 以下範例顯示「Start a debug session」面板:

      啟動偵錯工作階段窗格

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

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

    4. 按一下「Start Debug Session」

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

      雖然 UI 已建立偵錯工作階段,但您仍需要在有任何可收集的資料之前傳送要求。

      您可以在「Debug details」面板中執行下列操作:

      圖示 函式 說明
      下載圖示 下載 下載有效工作階段的偵錯資料,然後離線查看
      「退回」圖示 退還款項 返回先前的面板,您可以在其中啟動另一個偵錯工作階段。當前的偵錯工作階段會持續執行,直到達到逾時或交易計數為止。
      「刪除」圖示 刪除 刪除目前選取的偵錯工作階段資料。這麼做會刪除工作階段的資料,但不會停止工作階段。

      在 UI 中啟動偵錯工作階段時,預設逾時限制為 10 分鐘 (使用 API 啟動的工作階段則不同)。

      只要您點選「Start Debug Session」,時鐘就會開始運作,因此您可以選擇等到下一個步驟後再點選「Start Debug Session」,以便盡可能收集更多資料。

  6. 在「Send Requests」面板中:
    1. 在「網址」欄位中,輸入要傳送要求的端點。您可以選擇將查詢字串參數附加至網址。您無法提交 GET 以外的其他要求。
      如何找出端點網址
      1. 依序前往「管理」>「環境」>「群組」
      2. 這個網址是您要執行偵錯工作階段的相關環境的 主機名稱
    2. 「Send Requests」面板只會顯示 UI 要求的資料。不過請注意,偵錯功能也會記錄非 UI 啟動的請求資料。

    3. 按一下「傳送」

      Apigee 會向指定網址傳送要求。每次按一下「Send」,Apigee UI 就會在「Debug details」面板中記錄要求。

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

      擷取的偵錯要求

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

      此外,UI 會在「Send Requests」面板的「Transaction Map」和「Phase Details」部分中顯示偵錯資料,並填入「Proxy Endpoint」、「Request Headers」、「Request Content」和「Properties」部分,如以下範例所示:

      擷取的偵錯要求

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

    偵錯工作階段現在處於有效狀態,並記錄所有要求的資料 (除非已篩除)。在達到逾時期限或超出在工作階段中記錄的請求數量之前,工作階段都會保持有效狀態。

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

API

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

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

您也可以選擇:

以下範例說明如何使用 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 代理伺服器的後續要求 (直到達到工作階段時間或要求數量上限為止),並可能將其儲存在偵錯工作階段資料中。

詳情請參閱「Create debug session 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 網址

系統會使用 Proxy 網址將要求傳送至 API Proxy。

Cloud 控制台 UI

Debug v2 (新版)

如何找出及複製 Proxy 網址:

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

如何選取其他 Proxy 網址:

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

偵錯 v1

如何找出及複製 Proxy 網址:

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

如何編輯 Proxy 網址:

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

傳統版 UI

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

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

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

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

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

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

Cloud 控制台 UI

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

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

UI 會返回「Start a debug session」面板,您可以在其中開始新的偵錯工作階段。

傳統版 UI

在偵錯工作階段進行中,您可以在 Apigee UI 中啟動另一個工作階段。如要執行這項操作,請按一下「Debug details」面板中的「back arrow」圖示 ():

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

UI 會返回「Start a debug session」面板,您可以在其中開始新的偵錯工作階段。

偵錯工作階段何時結束?

您無法直接停止進行中的偵錯工作階段。不過,您可以刪除有效工作階段的資料,如「刪除偵錯工作階段資料」一文所述。

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

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

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

以下詞彙會用於說明偵錯工作階段的狀態:

  • 「有效工作階段」是指尚未達到逾時或超出計數的上限的偵錯工作階段。對於未篩除的要求,有效工作階段仍會記錄要求資料。
  • 「已完成的工作階段」是指已達到逾時或超出計數的上限的偵錯工作階段;已完成的工作階段不會再記錄新要求的資料,且其資料會在工作階段結束後的 24 小時內刪除。

如何讀取偵錯工作階段

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

另請參閱:

Cloud 控制台 UI

Debug v2 (新版)

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

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

偵錯 v1

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

傳統版 UI

偵錯工具包含兩個主要部分:交易對照圖和階段詳細資料:

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

「交易」窗格

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

Cloud 控制台 UI

Debug v2 (新版)

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

按一下即可查看較大的圖片 偵錯圖表,顯示「開始 Proxy 要求」以開始目標要求,以開始目標回應,以開始 Proxy 回應,以開始 Proxy 後端用戶端流程

偵錯 v1

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

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

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

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

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

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

  • ResponsePayload
  • 新增 CORS

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

新增 CORS 政策詳細資料。

如果您決定變更政策設定,可以按一下「開發」切換至「開發」檢視畫面,在「回應」PostFlow 中查看相同的兩項政策。

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

傳統版 UI

以下是標示主要 Proxy 處理區段的範例偵錯工具對應圖:

偵錯工具的交易對照圖

偵錯圖表,顯示「Begin proxy request」開始目標要求,以便開始目標回應,以便開始 Proxy 回應,以便開始 Proxy 後端用戶端流程

「交易」窗格圖例

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

Cloud 控制台 UI

Debug v2 (新版)

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

政策圖示

每種政策類型都有專屬圖示。這些圖示可讓您瞭解政策在哪裡以正確順序執行,以及是否執行成功。您可以按一下政策圖示,查看執行結果,以及結果是否符合預期。舉例來說,您可以查看訊息是否已正確轉換,或是否正在快取。

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

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

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

如何篩選表格:

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

政策類型

政策類別

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

其他圖示

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

如何篩選表格:

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

圖示類型

圖示 名稱 類型 說明
監控 用戶端應用程式 標準交易 將要求傳送至 API Proxy 的 ProxyEndpoint 的用戶端應用程式。
circle 過渡期端點 標準交易 圓圈標示 Proxy 流程中的轉換端點。這些事件會在以下情況發生時觸發:要求從用戶端傳入、要求傳送至目標、回應從目標傳回,以及回應傳回至用戶端。
stat_0 流程區段 標準交易

菱形代表 API 代理程式流程中的流程區段開頭。流程區段包括:ProxyEndpoint 要求、TargetEndpoint 要求、TargetEndpoint 回應和 ProxyEndpoint 回應。一個區段包含 PreFlow、ConditionalFlow 和 PostFlow。

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

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

評估為 true 的條件流程 (例如評估為 trueif 陳述式)。如要瞭解條件流程,請參閱「 條件流程」一文。

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

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

條件為假圖示 條件式流程為 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 設定、目前執行狀態 (例如流程前、流程後、流程鉤子)、政策執行詳細資料,以及在政策執行期間填入的變數,用來表示代理程式在該時點的特定狀態。
done_all 流程執行作業 標準交易 標示流程執行的開始或結束時間,指出個別流程片段的時間範圍,以視覺方式劃分流程邊界,並指出流程執行的順序。
commit 流程處理 標準交易 表示流程中的有效處理作業,代表執行政策和流程邏輯的期間。
bar_chart Apigee 分析擷取的資料 標準交易 表示 Analytics 動作已在背景執行。
location_on 後端服務 標準交易 接收要求的後端服務。 API Proxy 呼叫的後端目標。
停用圖示 已停用 步驟狀態 停用政策時,會顯示在政策圖示上。您可以使用公開 API 停用政策。請參閱 API Proxy 設定參考資料
錯誤圖示 錯誤 步驟狀態 當政策步驟條件評估為 false (請參閱「 含有流程變數的條件」),或在 RaiseFault 政策執行時,會顯示在政策圖示上。
「略過」圖示 已略過 步驟狀態 當政策未執行,因為步驟條件評估為 false 時,會顯示在政策圖示上。詳情請參閱「 含有流程變數的條件」一文。

偵錯 v1

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

傳統版 UI

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

交易地圖圖示

用戶端應用程式圖示 將要求傳送至 API Proxy 的 ProxyEndpoint 的用戶端應用程式。
過渡端點圖示 圓圈標示 Proxy 流程中的轉換端點。這些事件分別發生在要求從用戶端傳入、要求傳送至目標、回應從目標傳回,以及回應傳回至用戶端時。
流程區隔圖示

高條表示 API 代理程式流程中的流程區段起始處。流程區段包括 ProxyEndpoint 要求、TargetEndpoint 要求、TargetEndpoint 回應和 ProxyEndpoint 回應。一個區段包含 PreFlow、ConditionalFlow 和 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 表示時間間隔小於 1 毫秒。
停用圖示

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

錯誤圖示 錯誤。當政策步驟條件評估為 false (請參閱「流程變數和條件」),或在 RaiseFault 政策執行時,會顯示在政策圖示上。
「略過」圖示 已略過。當步驟條件評估為 false,政策就不會執行,此時會顯示在政策圖示上。詳情請參閱「流程變數和條件」一文。

階段詳細資料窗格

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

Cloud 控制台 UI

Debug v2 (新版)

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

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

階段詳細資料 說明
變數

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

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

偵錯 v1

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

傳統版 UI

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

階段詳細資料 說明
Proxy 端點 指出系統選取哪個 ProxyEndpoint 流程來執行。API Proxy 可以有多個命名 Proxy 端點。
變數

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

注意

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

時間軸

時間軸會顯示處理時間 (以毫秒為單位) 所需的時間長度。比較經過的時間區段有助於您找出執行時間最長的政策,進而減緩 API 呼叫速度。

Epsilon 表示時間間隔小於 1 毫秒。

Cloud 控制台 UI

Debug v2 (新版)

按一下即可查看較大的圖片 Debug v2 UI 中的時間軸

偵錯 v1

按一下即可查看較大的圖片 Debug v1 UI 中的時間軸

傳統版 UI

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

展開和收合群組

本節說明如何在交易窗格中展開及摺疊群組。

Cloud 控制台 UI

Debug v2 (新版)

請注意,請求和回應的交易步驟會依據先前在「Develop」分頁中設定的方式,以共用流程分組。例如:前置 Proxy、後置 Proxy、前置目標和後置目標。

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

根據預設,共用流程會分組並收合。

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

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

另請參閱:

偵錯 v1

這個版本不支援展開和摺疊群組。

傳統版 UI

這個版本不支援展開和摺疊群組。

您可以使用搜尋功能,在要求或回應中尋找字詞或詞組。

Cloud 控制台 UI

Debug v2 (新版)

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

注意事項:

  • 搜尋字詞不區分大小寫
  • 搜尋作業只會套用至單一交易,也就是不會在整個偵錯工作階段中搜尋所有交易。
  • 搜尋功能會展開已摺疊的部分,但不會顯示遭到 View Options 選項篩除的節點資訊。

如要搜尋:

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

    「Transaction」窗格和「Phase Details」窗格會醒目顯示搜尋結果。

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

偵錯 v1

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

傳統版 UI

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

縮放

您可以透過 Zoom 控制「交易」窗格的檢視畫面。

Cloud 控制台 UI

Debug v2 (新版)

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

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

偵錯 v1

這個版本不支援 Zoom。

傳統版 UI

這個版本不支援 Zoom。

使用偵錯工具進行偵錯

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

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

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

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

注意事項:

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

使用篩選器

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

Cloud 控制台 UI

在 UI 中建立偵錯工作階段時,您可以在「Filters」下拉式清單中選擇要套用至「Start a debug session」面板的預先定義篩選器,或是選擇「Custom Filter」,然後使用篩選器語法建立自訂篩選器。

傳統版 UI

在 UI 中建立偵錯工作階段時,您可以在「Filters」下拉式清單中選擇要套用的預先定義篩選器,或是選擇「Custom Filter」,然後使用篩選器語法建立自訂篩選器。

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 UI 提供一組常見篩選器,因此您不必自行編寫自訂篩選器。下表列出預先定義的篩選器。

篩選條件名稱 說明
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 UI 或 API 查看最近的偵錯工作階段。

Cloud 控制台 UI

Debug v2 (新版)

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

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

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

偵錯 v1

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

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

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

傳統版 UI

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

  1. 登入 Apigee UI
  2. 在主畫面中選取「API Proxy」
  3. 選取要偵錯的 Proxy。
  4. 按一下「部署」檢視畫面右上方的「偵錯」分頁。
  5. 在「近期偵錯工作階段」面板中:
    1. 在「Env」Env下拉式清單中,選取要查看偵錯工作階段的 API 代理程式環境。
    2. 在「Rev」Rev下拉式清單中,選取要查看其偵錯工作階段的 API 代理程式修訂版本號碼。

    Apigee UI 會顯示可用的偵錯工作階段清單。

  6. 按一下要觀看的活動連結。

    Apigee UI 會載入偵錯工作階段,並在「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 代理程式修訂版本 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
}
]
}

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

詳情請參閱「List Debug sessions 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

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

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

傳統版 UI

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

查看選項清單

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

分享偵錯工作階段

您可以與其他使用者共用偵錯工作階段,這些使用者必須具備貴機構的存取權和必要權限。如要這樣做,請在瀏覽器中查看偵錯工作階段時,將顯示的網址傳送給他們。連結的有效期限為建立偵錯工作階段後的 24 小時。

下載偵錯工作階段資料

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

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

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

Cloud 控制台 UI

Debug v2 (新版)

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

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

偵錯 v1

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

下載偵錯工作階段。

請注意,偵錯工作階段會在完成後的 24 小時內刪除,因此如果您想在該時間過後查看偵錯工作階段,就必須先下載該工作階段。

傳統版 UI

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

  • 有效工作階段:按一下「Debug details」面板中的「Download」圖示 (下載圖示)。
  • 先前的工作階段:查看偵錯工作階段所述,請在「最近的偵錯工作階段」面板中按一下工作階段名稱。然後按一下「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 UI 或 API,如以下各節所述。

Cloud 控制台 UI

Debug v2 (新版)

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

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

偵錯 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 就會代為刪除。