如何从Bluemix中的另一个应用程序调用无路由的应用程序?

时间:2015-05-21 08:06:22

标签: ibm-cloud

这是用例:

我在Bluemix中有两个应用程序:app1和app2

app1可通过互联网使用其路线(例如app1.mybluemix.net)

访问

app2没有任何途径阻止通过互联网访问。

app2可能会公开REST API。

如何从Bluemix中的app1调用app2?

3 个答案:

答案 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)

有两种方法可以阻止访问。

  1. 将您的微服务放入Bluemix容器并使用私有IP https://new-console.ng.bluemix.net/docs/containers/container_security_network.html#container_cli_ips_byoip 使用API​​ Connect作为容器微服务中私有IP的API网关/代理。

  2. 使用Bluemix Dedicated部署app2。 Bluemix dedicated提供防火墙功能,您可以对其进行设置,使其仅接受来自app1的IP地址的请求。

  3. 使用Bluemix Local时,使用相同的方法,使用公司防火墙只接受来自App1 IP地址的请求。与公共PAAS相比,这是一种昂贵的替代方案。

  4. 使用API Connect Service which replaced the API Management Service

    • 指定用户可以访问您的apis
    • 指定每天或其他时间单位的请求数
    • 提供API网关以安全地呼叫其他服务App2。
  5. 我希望在某些时候,软件网络定义的解决方案将被视为产品的一部分。