microsoft - ¿Cómo puedo alojar un Oyente TCP en Azure?
porta azure (2)
Estoy buscando construir una aplicación en Azure que actúe como escucha TCP, reciba flujos de mensajes TCP en un puerto específico y luego agregue la información a una base de datos. La comunicación TCP entrante se asegurará con un certificado.
Estoy considerando las siguientes opciones:
Rol de trabajador de servicio en la nube
Definitivamente parece que funcionará . Sin embargo, eso significa que tengo que usar un servicio en la nube y me pierdo las características y la simplicidad que ofrece el servicio de aplicaciones. La documentación del Servicio de Cloud también describe específicamente cómo abrir los puertos TCP necesarios.
Servicio de aplicaciones
En una aplicación lógica (preferida), sin embargo, esto no parece ser compatible de forma nativa con un oyente TCP, por lo que buscaría construir una aplicación API personalizada. Alternativamente, podría crear un trabajo web.
Sin embargo, no estoy seguro de que este enfoque funcione, y tengo las siguientes preguntas:
- ¿Puedo exponer puertos TCP arbitrarios en el Servicio de aplicaciones?
- Si bien la documentación del Servicio de Cloud describe específicamente cómo hacerlo, no puedo encontrar nada similar para el Servicio de aplicaciones. Entonces, o la configuración no es necesaria o la comunicación TCP simplemente no es posible dentro del Servicio de aplicaciones.
- ¿Puedo construir un oyente TCP dentro de una aplicación lógica, aplicación de API o trabajo web, por ejemplo, la arquitectura de Azure admite el comportamiento requerido para un oyente TCP?
¿Puedo alojar un oyente TCP en un servicio de aplicaciones Azure?
Rol de trabajador de servicio en la nube
Definitivamente parece que funcionará. Sin embargo, eso significa que tengo que usar un servicio en la nube y me pierdo las características y la simplicidad que ofrece el servicio de aplicaciones. La documentación del Servicio de Cloud también describe específicamente cómo abrir los puertos TCP necesarios.
Definitivamente funciona
https://msdn.microsoft.com/en-us/library/azure/gg557553.aspx
En ServiceDefinition.csdef :
<Endpoints>
<InputEndpoint name="RawTCP" protocol="tcp" port="54321" localPort="54321" />
</Endpoints>
Servicio de aplicaciones
En una aplicación lógica (preferida), sin embargo, esto no parece ser compatible de forma nativa con un oyente TCP>, por lo que buscaría construir una aplicación API personalizada. Alternativamente, podría crear un trabajo web. ...
¿Puedo exponer puertos TCP arbitrarios en el Servicio de aplicaciones? ...
¿Puedo alojar un Oyente TCP en un Servicio de aplicaciones Azure?
No y No. Solo 80 / TCP y 443 / TCP están expuestos públicamente y el único protocolo que funciona es HTTP. No puede hacer oyentes personalizados con App Service.
Consulte las limitaciones de la zona de pruebas enumeradas aquí: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening
Siéntase libre de realizar una solicitud de extracción en la documentación de Azure si esta limitación no se menciona en la página Servicio de aplicaciones.
Service Fabric sería una buena tercera opción (¿o primera?): Https://azure.microsoft.com/en-us/services/service-fabric/
Levanté un ticket de soporte y confirmé esto con Microsoft.
[En el Servicio de aplicaciones], Azure no admite el puerto personalizado y solo es compatible con el protocolo http. Estas 2 razones niegan el uso del oyente TCP.
También más información de colaboración esta pregunta; ¿Puedo abrir puertos en los sitios web de Azure?