如何在Azure中托管TCP侦听器?

Jam*_*ood 14 tcp azure azure-cloud-services azure-webjobs azure-logic-apps

我希望在Azure中构建一个应用程序,它将充当TCP侦听器,在指定端口上接收TCP消息流,然后将信息添加到数据库.传入的TCP通信将使用证书进行保护.

我正在考虑以下选项:

云服务工作者角色

这看起来肯定会起作用.但是,这意味着我必须使用Cloud Service,而我错过了App Service提供的功能和简单性.Cloud Service 文档还专门描述了如何打开所需的TCP端口.

应用服务

在逻辑应用程序(首选)中,但这似乎本身不支持TCP侦听器,因此我希望构建一个自定义API应用程序.或者,我可以创建一个Web作业.

但是我不确定这种方法是否有效,我有以下问题:

  • 我可以在App Service上公开任意TCP端口吗?
    • 虽然Cloud Service文档具体描述了如何执行此操作,但我找不到与App Service类似的任何内容.因此,要么不需要配置,要么在App Service中无法进行TCP通信.
  • 我可以在逻辑应用程序,API应用程序或Web作业中构建TCP侦听器,例如,Azure的体系结构是否支持TCP侦听器所需的行为?

我可以在Azure应用服务中托管TCP侦听器吗?

evi*_*obu 7

云服务工作者角色

这看起来肯定会起作用.但是,这意味着我必须使用Cloud Service,而我错过了App Service提供的功能和简单性.Cloud Service文档还专门描述了如何打开所需的TCP端口.

绝对有效.

https://msdn.microsoft.com/en-us/library/azure/gg557553.aspx

ServiceDefinition.csdef中:

<Endpoints>
  <InputEndpoint name="RawTCP" protocol="tcp" port="54321" localPort="54321" />
</Endpoints> 
Run Code Online (Sandbox Code Playgroud)

应用服务

在逻辑应用程序(首选)中,但这似乎本身不支持TCP>侦听器,因此我希望构建一个自定义API应用程序.或者,我可以创建一个Web作业....

我可以在App Service上公开任意TCP端口吗?...

我可以在Azure应用服务中托管TCP侦听器吗?

否和否.只有80/TCP和443/TCP公开公开,唯一有效的协议是HTTP.您无法使用App Service执行自定义侦听器.

请参阅此处列出的沙箱限制:https: //github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening

如果在App Service页面上未提及此限制,请随意在Azure文档中发出pull请求.

Service Fabric将是一个很酷的第三(或第一?)选项:https: //azure.microsoft.com/en-us/services/service-fabric/


Jam*_*ood 5

我提出了支持请求并与 Microsoft 确认了这一点。

[在应用服务中] Azure 不支持自定义端口,仅支持 http 协议。这两个原因拒绝使用 TCP 侦听器。

还进一步合作信息这个问题;我可以在 Azure 网站上打开端口吗?