这是用例:
我在Bluemix中有两个应用程序:app1和app2
app1可通过互联网使用其路线(例如app1.mybluemix.net)
访问app2没有任何途径阻止通过互联网访问。
app2可能会公开REST API。
如何从Bluemix中的app1调用app2?
答案 0 :(得分:6)
在此Microservice Shipping sample中实现了与没有路由的应用程序通信的示例。
这是一个EJB Liberty应用程序,它在没有路由的情况下在Bluemix上运行并订阅Bluemix MQ Light服务。消息的发送者是Microservice Orders sample应用程序,它绑定到同一个MQ Light服务。
使用REST API路由意味着您必须拥有外部可访问的路由。但是,您可以使用密钥和令牌来保护它。
答案 1 :(得分:3)
使用Bluemix中的某个服务作为" RPC"会更容易。两个应用程序之间的层。您可以使用其中一个队列服务(MQLight,RabbitMQ)或Redis在应用程序之间传递消息以执行命令。
这些服务绑定是内部的,不像REST API那样在外部公开。
或者,您可以从App2公开REST API并使用身份验证来控制访问。
答案 2 :(得分:3)
有两种方法可以阻止访问。
将您的微服务放入Bluemix容器并使用私有IP https://new-console.ng.bluemix.net/docs/containers/container_security_network.html#container_cli_ips_byoip 使用API Connect作为容器微服务中私有IP的API网关/代理。
使用Bluemix Dedicated部署app2。 Bluemix dedicated提供防火墙功能,您可以对其进行设置,使其仅接受来自app1的IP地址的请求。
使用Bluemix Local时,使用相同的方法,使用公司防火墙只接受来自App1 IP地址的请求。与公共PAAS相比,这是一种昂贵的替代方案。
使用API Connect Service which replaced the API Management Service:
我希望在某些时候,软件网络定义的解决方案将被视为产品的一部分。