如何向路由器或消息处理器发出直接 API 请求

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

简介

排查问题时,您可能需要直接对 Apigee 组件(例如路由器或消息处理器)执行 API。例如,您可能希望执行此操作来:

  • 调试指向特定 Apigee 组件(路由器/消息处理器)问题的某些 API 请求间歇性问题。
  • 通过对 Apigee 组件的特定实例启用调试模式,收集更多诊断信息。
  • 排除问题是由特定 Apigee 组件导致的。
  • 了解生成新实例或重启实例等操作是否具有预期影响。

前提条件

  • 直接访问需要运行 API 请求的路由器或消息处理器组件。
  • 需要在该组件的特定实例上安装 cURL 工具。
  • 要测试的 API 请求(采用 c网址 格式)。

    例如,以下 curl 命令可用于从本地机器向 API 代理发出请求:

    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 请求必须随标头 X-Apigee.Host 一起发送到网址 http://INTERNAL_IP_OF_MP:8998,其中的值主机名包含虚拟主机中使用的端口,如以下三个示例所示:

  • 虚拟主机配置为在路由器上终止 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 通信。以下示例使用 Apigee 文档建议的端口 8443。

  • 虚拟主机配置为在路由器上终止 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'