如何向路由器或訊息處理器發出直接 API 要求

查看 Apigee Edge 說明文件。
前往 Apigee X說明文件
資訊

簡介

進行疑難排解時,建議您直接針對路由器或訊息處理器等 Apigee 元件執行 API。舉例來說,這麼做可達到以下目的:

  • 針對指向特定 Apigee 元件 (路由器/訊息處理器) 的問題的特定 API 要求,進行偵錯。
  • 只要在 Apigee 元件的特定執行個體中啟用偵錯模式,即可收集更多診斷資訊。
  • 排除問題是由特定 Apigee 元件造成。
  • 找出如產生新的執行個體或重新啟動執行個體等作業,是否達到預期的影響。

必要條件

  • 直接存取需要執行 API 要求的路由器或訊息處理器元件。
  • 在特定元件執行個體上,必須安裝 cURL 工具。
  • 您要以 cURL 格式測試的 API 要求。

    舉例來說,以下是您可以從本機電腦向 API Proxy 傳送要求的 curl 指令:

    curl https://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
    curl https://myorg-test.mycompany.com/v1/customers
    

如何直接對 Apigee 路由器執行 API 要求

情境 1:對主機別名指向路由器的 API 要求

如果主機別名的 DNS 項目設為指向 Apigee Edge 路由器 (也就是沒有 Elastic Load Balancer (ELB),則您可以使用下列 curl 指令直接對路由器發出 API 要求:

  • 設定為以通訊埠 80 進行不安全通訊的虛擬主機

    curl -v --resolve HOST_ALIAS:80:127.0.0.1 http://HOST_ALIAS/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    例如:

    curl -v --resolve myorg-test.mycompany.com:80:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • 虛擬主機已設為終止路由器的通訊埠 443 的安全資料傳輸層 (SSL)

    curl -v --resolve HOST_ALIAS:443:127.0.0.1 https://HOST_ALIAS/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    例如:

    curl -v --resolve myorg-test.mycompany.com:443:127.0.0.1 https://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    

情境 2:對主機別名指向 ELB 的 API 要求

如果主機別名的 DNS 項目設為指向 Elastic Load Balancer (ELB),那麼您可以使用下列 curl 指令,直接將 API 要求傳送至路由器:

  • 設定為以通訊埠 80 進行不安全通訊的虛擬主機

    curl -v --resolve HOST_ALIAS:80:127.0.0.1 http://HOST_ALIAS/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    例如:

    curl -v --resolve myorg-test.mycompany.com:80:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • 設定高通訊埠且安全資料傳輸層 (SSL) 的虛擬主機會在 Apigee 路由器前方的負載平衡器終止

    curl -v --resolve HOST_ALIAS:PORT_NUMBER:127.0.0.1 http:/HOST_ALIAS:PORT_NUMBER/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    例如:

    curl -v --resolve myorg-test.mycompany.com:19001:127.0.0.1 http://myorg-test.mycompany.com/v1/customers -H 'authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    
  • 設定高通訊埠且安全資料傳輸層 (SSL) 的虛擬主機會在 Apigee 路由器上終止

    換句話說,負載平衡器設定為透過 TCP 直通到 Apigee 路由器。

    curl -v --resolve HOST_ALIAS:PORT_NUMBER:127.0.0.1 https:/HOST_ALIAS:PORT_NUMBER/PROXY_BASE_PATH/ -H 'HEADER: VALUE'
    

    例如:

    curl -v --resolve myorg-test.mycompany.com:19001:127.0.0.1 https://myorg-test.mycompany.com/v1/customers -H 'authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2'
    

如何直接對 Apigee 訊息處理器執行要求

情境 1:透過預設通訊埠 8998 向訊息處理工具發出 API 要求

訊息處理工具監聽 Apigee 路由器流量的預設通訊埠為 8998。因此,針對所有未變更通訊埠的情況,流量必須直接從特定訊息處理器執行個體的這個通訊埠直接傳送到這個通訊埠,如以下範例所示。您必須將 curl 要求傳送至網址 http://INTERNAL_IP_OF_MP:8998,以及標頭 X-Apigee.Host 和值主機名稱 (包括虛擬主機中使用的通訊埠),如以下三個範例所示:

  • 虛擬主機已設定在路由器上進行 SSL 終止

    curl -v http://INTERNAL_IP_OF_MP:8998/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:443'
    

    例如:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:443'
    
  • 已設定虛擬主機,用於「高通訊埠」且 SSL 終止會發生在負載平衡器「或」Apigee 路由器上:

    curl -v http://INTERNAL_IP_OF_MP:8998/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:PORT_NUMBER'
    

    例如:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:19001'
    
  • 虛擬主機已設為預設的 http 通訊埠 80

    curl -v http://INTERNAL_IP_OF_MP:8998/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:80'
    

    例如:

    curl -v http://10.10.53.115:8998/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:80'
    

情境 2:透過 SSL 通訊埠 8443 向訊息處理器發出的 API 要求

您可以為路由器和訊息處理器設定 SSL 通訊。下列範例使用通訊埠 8443,這是 Apigee 說明文件建議的通訊埠。

  • 虛擬主機已設定在路由器上進行 SSL 終止

    curl -v -k https://INTERNAL_IP_OF_MP:8443/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:443'
    

    例如:

    curl -v https://10.10.53.115:8443/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:80'
    
  • 虛擬主機已設定在負載平衡器上進行 SSL 終止,並將流量轉送至路由器的高通訊埠流量

    curl -v https://INTERNAL_IP_OF_MP:8443/PROXY_BASE_PATH/ -H 'HEADER: VALUE' -H 'X-Apigee.Host: HOST_ALIAS:PORT_NUMBER'
    

    例如:

    curl -v https://10.10.53.115:8443/v1/customers -H 'Authorization: Bearer AxLqyU09GA10lrAiVRQCGXzMi9W2' -H 'X-Apigee.Host: myorg-test.mycompany.com:19001'
    
,瞭解如何調查及移除這項存取權。