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

<ph type="x-smartling-placeholder"></ph> 您正在查看 Apigee Edge 文档。
转到 Apigee X 文档
信息

简介

排查问题时,您可能希望直接针对 Apigee 组件(例如路由器或消息处理器)执行 API。例如,为了实现以下目的,您可能需要执行此操作:

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

前提条件

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

    例如,以下 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:向主机别名发出的指向 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 请求连同标头 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 通信。以下示例使用端口 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'