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

您目前查看的是 Apigee Edge 說明文件。
前往 Apigee X 說明文件。
info

簡介

進行疑難排解時,您可能需要直接對 Apigee 元件 (例如路由器或訊息處理器) 執行 API。舉例來說,您可能想這麼做,以便:

  • 針對特定 API 請求的間歇性問題進行偵錯,這些問題指向特定 Apigee 元件 (路由器/訊息處理器)。
  • 在特定 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 要求

訊息處理器預設會監聽通訊埠 8998,接收來自 Apigee 路由器的流量。因此,如果未變更這個連接埠,就必須將流量直接傳送至特定訊息處理器執行個體上的這個連接埠,如下例所示。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'