我使用Apigee作为API代理。我为Apigee和我的后端服务器之间的连接设置了2路ssl。我从Apigee代理(HTTP状态代码为404)获得CLASSIFICATION_FAILED的间歇性响应代码,其他时候Apigee成功地将请求转发到我的后端服务器。当我为API启用跟踪时,当我收到CLASSIFICATION_FAILED错误时,Apigee跟踪甚至不记录错误请求的事务。我们有这个API工作了几个月。这个问题最近才出现。有没有人知道是什么原因引起的?
谢谢!
答案 0 :(得分:1)
部署代理时,工件实际上会部署到群集中的多个节点。在极少数情况下,一个或多个此类节点无法成功部署代理。在这种情况下,您可能会得到间歇性的404响应。
要解决这个问题
curl -v https://api.enterprise.apigee.com/v1/organizations/{your-org-name}/environments/{env-name}/apis/{api-proxy-name}/deployments -u {your-apigee-edge-username}:{your-apigee-edge-password}
响应应如下所示,其中所有节点都应显示已部署状态。
{ "environment" : "prod", "name" : "your-api-proxy-name", "organization" : "your-organization-name", "revision" : [ { "configuration" : { "basePath" : "/", "steps" : [ ] }, "name" : "62", "server" : [ { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "e6f83b53-8ab1-4325-bb77-df1bc4df8d59" }, { "status" : "deployed", "type" : [ "message-processor" ], "uUID" : "8a4549fe-ceff-44cf-967f-ab4a500a0479" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "3341eda0-fa82-4dcb-bbf1-5cf77dc03efc" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "c0b782f2-ccb6-4984-a0c0-0ac1db60a039" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "38f80c53-a22b-4427-ab95-a178482daa6b" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "28d847a2-5bfd-404d-985d-33d079d691d9" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "26467f86-e529-4135-b012-120e274755d3" }, { "status" : "deployed", "type" : [ "router" ], "uUID" : "807be0c7-dcc7-4be4-9d1e-30d26fa5519c" } ], "state" : "deployed" } ] }
答案 1 :(得分:0)
由于我们都看到了这个错误,我相信他们可能有一些 维修或类似的东西。 别担心,不是你;)
编辑:部署也是不可能的,因此它不是那个不起作用的API。
答案 2 :(得分:0)
当Apigee服务器无法找到您的apiproxy并因此无法将其路由到您的后端时,通常会发送CLASSIFICATION_FAILED响应。
要检查的几点:
确保您的api调用正确,包括apiproxy中指定的basepath。
捆绑包中指定的虚拟主机在api调用中未指定hostalias。
答案 3 :(得分:0)
这是一个部署问题。看起来没有在所有MP上部署捆绑包。建议使用maven / APIGEE Edge Management API进行部署。这些工具可以更好地了解每个消息处理器的部署状态。