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

您正在查看 Apigee Edge 說明文件。
查看 Apigee X 說明文件
資訊

簡介

排解問題時,建議您直接對路由器或訊息處理器等 Apigee 元件執行 API。舉例來說,您可能會想這樣做:

  • 針對指向特定 Apigee 元件 (路由器/訊息處理方) 問題的特定 API 要求,偵錯間歇性問題。
  • 針對 Apigee 元件的特定執行個體啟用偵錯模式,藉此收集更多診斷資訊。
  • 排除問題是由特定 Apigee 元件造成。
  • 探索產生新執行個體或重新啟動執行個體等作業是否有需要的影響。

必要條件

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

    舉例來說,以下 curl 指令可讓您從本機電腦向 API Proxy 發出要求:

    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:傳送至主機別名的 API 要求,指向 ELB

如果主機別名的 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'
    
  • 虛擬主機已設定為「高通訊埠」,並在負載平衡器「或」Apigee 路由器上發生 SSL 終止:

    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'