如何为我的azure云服务中的每个端点定义端口

时间:2015-06-11 21:01:03

标签: azure azure-cloud-services

所以我有一个Azure云服务,现在它有2个实例。我希望能够单独与每个实例进行通信,在我看来,这里找到的信息 - https://msdn.microsoft.com/en-us/library/azure/hh180158.aspx - 应该能够满足我的需求。

我不明白的是,我如何与每个实例进行沟通?如果我为我的Web角色定义了2个输入端点,那么它是如何知道的?#34;哪个实例响应一个端口,哪个实例响应另一个端口?

例如,这里是我正在玩的ServiceDefinition文件的示例:

<ServiceDefinition name="BasicWrapperServices.Azure" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2014-06.2.4">
  <WebRole name="MyCloudService" vmsize="Medium">
    <Certificates>
      <Certificate name="mydomain.com" storeLocation="LocalMachine" storeName="My" />
    </Certificates>
    <Sites>
      <Site name="Web">
        <Bindings>
          <Binding name="Endpoint1" endpointName="Endpoint1" />
          <Binding name="HttpsIn" endpointName="HttpsIn" />
        </Bindings>
      </Site>
    </Sites>
    <Endpoints>
      <InputEndpoint name="Endpoint1" protocol="http" port="80" />
      <InputEndpoint name="HttpsIn" protocol="https" port="443" certificate="mydomain.com" />
      <InputEndpoint name="InputEndpoint1" protocol="https" port="10000" certificate="mydomain.com"/>
      <InputEndpoint name="InputEndpoint2" protocol="https" port="10001" certificate="mydomain.com" />
    </Endpoints>
    <Imports>
      <Import moduleName="RemoteAccess" />
      <Import moduleName="RemoteForwarder" />
    </Imports>
  </WebRole>
</ServiceDefinition>

我在这里寻找的是能够通过端口10000与另一个实例进行通信,而不是10001,除非我错了?

2 个答案:

答案 0 :(得分:0)

如果您想直接连接到每个实例而不通过Loadbalancer,那么在provided的同一URL上,查看直接端口端点。

端口的范围,例如10000到10010按顺序分配给您的角色实例。 Role_0获得10000,Role_1获得10001等等。

希望它有所帮助。

答案 1 :(得分:0)

您需要InstanceInputEndpoint,而不是InputEndpoint 所以你的配置看起来像这样:

  <InstanceInputEndpoint name="TraceEndpoint" protocol="tcp" localPort="443">
    <AllocatePublicPortFrom>
      <FixedPortRange max="10000" min="10010" />
    </AllocatePublicPortFrom>
  </InstanceInputEndpoint>

然后,您可以在旧门户中查找分配了哪些端点。

本地端口可能是您想要的任何东西。

在你的情况下它应该是443我想,因为你想通过https协议访问实例。所以在每个实例上都必须有一些正在倾听的东西。在你的情况下,它是443端口上的IIS。

然后,您可以通过公共IP和为每个实例分配的公共端口为每个实例访问443本地端口。