您正在查看 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'