apigee / pivotal-cf-apigee

This repository has moved to https://github.com/apigee/cloud-foundry-apigee
Other
8 stars 13 forks source link

Target Endpoint Incorrect in Apigee Edge Proxy #23

Open kartiklunkad26 opened 8 years ago

kartiklunkad26 commented 8 years ago

Hi! I'm using the apigee service broker to route my application through the apigee edge platform. I followed the steps and I was able to successfully create an API proxy on the edge platform. The route for my application is https://spring-music-demo.local2.pcfdev.io, but when I see the target end point in the Apigee Edge platform, it's http://spring-music-demo.local2.pcfdev.io. Hence the application doesn't show up after I bind it with the route services.

Here's a screenshot. While binding the route services, I used the 'user' and 'pass' fields.

screen shot 2016-10-17 at 2 25 21 pm
carloseberhardt commented 8 years ago

Try tracing that proxy and hitting the route. If things are working correctly the real URL for the target is passed in the X-Cf-Forwarded-Url header. The proxy uses that header to route traffic to the target endpoint. The target endpoint listed on the overview page won't impact the behavior, although it would surely make sense for it to be a bit more accurate.

kartiklunkad26 commented 8 years ago

I think the reason my application failed was that it didn't comply with the open API standard. Can that be an issue? I was able to deploy the application successfully before. Also, The service broker in this github repo asks to provide the JSON string in bind-service call versus create-service in http://docs.apigee.com/api-services/content/creating-edge-api-proxy-manage-client-calls-your-cloud-foundry-application. Apologies for jumping threads.

carloseberhardt commented 8 years ago

Open API isn't required. Should work just fine without it. Our docs haven't been updated yet to match the current state of the master branch. Sorry for any confusion!

Does a simple proxy to your target work without route services?

kartiklunkad26 commented 8 years ago

No it doesn't. Thanks for that. I think I know why. PCF Dev routes are not accessible from any hosts outside my laptop. So when the Edge platform tries to make that call, it fails. I'll try this with a PCF installation on AWS and let you know! Thanks for your help!

kartiklunkad26 commented 8 years ago

Hi Carlos, Upon further investigation, I saw that the issue was that when you create a simple proxy without route services, by default the proxy base path takes the name of the proxy but does not add an additional '/'. When I do add that, it works fine. But without that, my simple proxy fails as well as the application with route-services. With a simple proxy, I can make that change. But we have to figure out how it would happen with route-services!

screen shot 2016-10-18 at 4 12 16 pm
carloseberhardt commented 8 years ago

The target for route-services proxies gets passed in via the X-Cf-Forwarded-Url header from the go router. The target defined in the proxy is overridden using that header. You can see the content of the header if you trace the proxy and hit the route. I haven't seen the issue of the / come up before.