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

您正在查看 Apigee Edge 文档。
前往 Apigee X 文档。
信息

简介

在问题排查过程中,您可能需要直接针对路由器或消息处理器等 Apigee 组件执行 API。例如,您可能希望通过这种方式来:

  • 调试某些 API 请求中指向特定 Apigee 组件(路由器/消息处理器)的问题。
  • 通过在特定 Apigee 组件实例上启用调试模式,收集更多诊断信息。
  • 排除问题是由特定 Apigee 组件引起的可能性。
  • 了解生成新实例或重启实例等操作是否会产生预期效果。

前提条件

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

    例如,以下 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 路由器(换句话说,没有弹性负载均衡器 (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 条目配置为指向弹性负载均衡器 (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'