如何在Azure虚拟机(IAAS)和服务结构应用程序之间建立通信

时间:2017-01-25 10:48:07

标签: azure azure-service-fabric

我想在.Net中实现服务结构应用程序(Guest Executable),它将部署在服务结构集群的任何单个节点上。此服务结构应用程序将在另一个Azure虚拟机(IAAS,即远程Azure虚拟机)上打开python终端,该虚拟机不是服务结构集群的一部分。在远程Azure机器上打开终端后,django应用程序读取命令行参数并执行一些操作并将响应发送回服务结构应用程序。然后,服务结构应用程序读取从远程Azure计算机接收的响应并存储到数据库中。 我无法在远程Azure虚拟机(IAAS)和服务结构应用程序之间建立通信

请帮我实现这个。

由于

2 个答案:

答案 0 :(得分:1)

从门户创建新的Service Fabric群集时,它会自动为该群集创建虚拟网络(VNET)。您的其他虚拟机可能位于另一个VNET中。每个VNET中的组件可以在内部进行通信而不会出现问题(使用专用IP),但跨VNET连接需要配置。您的选择(根据它们实施的容易程度排序):

  1. 使用VM的公共IP地址(如果使用门户默认设置,则为一个)并从SF中调用它。它应该无缝地工作,除非涉及特殊端口(我不明白"打开python终端"意味着什么)。
  2. 在同一网络中同时创建SF和VM。您可以create the VM inside the VNET that SF has created for itselfcreate the SF cluster in the VNET of your VM。这意味着SF和VM依赖于相同的基础设施,在这种情况下听起来很好,两者都是同一逻辑应用程序的一部分。
  3. 将SF和VM保存在单独的VNET中并在它们之间进行链接。我建议尝试使用VNET Peering:https://docs.microsoft.com/en-us/azure/virtual-network/virtual-network-peering-overview。但另一种可能性是VPN连接。

答案 1 :(得分:0)

阅读有关沟通的this。有几种选择,我经常使用的是:

  1. 在SF中托管Web Api并与VM通信。
  2. 使用Azure Service总线;从中发送消息 VM,在SF服务中接收它们。