7

私は、Azureでアプリケーションを構築して、TCPリスナーとして動作し、指定されたポートでTCPメッセージストリームを受信し、その情報をデータベースに追加しようと考えています。受信TCP通信は証明書で保護されます。AzureでTCPリスナーをホストするにはどうすればよいですか?

私は、次のオプションを検討している:

クラウドサービスWorkerロールは

これは間違いのようにそれがworkます見えます。しかし、それは私がクラウドサービスを使用しなければならないことを意味し、Appサービスが提供する機能とシンプルさが欠けています。クラウドサービスdocumentationでは、必要なTCPポートを開く方法についても具体的に説明しています。 (推奨)ロジックアプリで

アプリケーションサービス

が、しかし、これはネイティブTCPリスナーをサポートしていないようですので、私は、カスタムAPIアプリケーションを構築することになります。また、Webジョブを作成することもできます。

しかし私は、このアプローチがうまくいくか分からない、と私は、次の質問を持っている:

  • 私はアプリケーションサービス上の任意のTCPポートを公開することはできますか?
    • クラウドサービスのドキュメントでは、これを行う方法について具体的に説明していますが、Appサービスと同様のものは見つかりません。そのため、設定が不要であるか、Appサービス内でTCP通信ができないだけです。
  • Logic App、API App、またはWeb Job内にTCPリスナーを構築できますか? AzureのアーキテクチャはTCPリスナーに必要な動作をサポートしていますか?

Azure AppサービスでTCPリスナーをホストすることはできますか?

+0

HTTP経由でこの作業を行うことはできますか?これらの懸念はすべて消え去ります。 – usr

+0

悲しいことに、TCPは反対側のアプリケーションの要件です。 –

+0

その後、MSDNのTCPチュートリアルは本当に悪いことに注意してください。特にhttps://msdn.microsoft.com/en-us/library/fx6588te(v=vs.110).aspxは恐ろしいです。また、ソケットコードを書くのは難しいです。このチュートリアルが悪いことを認識できない場合、これはあなたが非常に経験がなく、より困難な時間を持つことを意味します。ただあなたに警告する。 – usr

答えて

4

クラウドサービスWorkerロール

それが動作するようにこれは間違いなく見えます。しかし、それは私がクラウドサービスを使用しなければならないことを意味し、Appサービスが提供する機能とシンプルさが欠けています。クラウドサービスのドキュメントでは、必要なTCPポートを開く方法についても具体的に説明しています。

間違いなく動作します。

ServiceDefinition.csdef

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

<Endpoints> 
    <InputEndpoint name="RawTCP" protocol="tcp" port="54321" localPort="54321" /> 
</Endpoints> 

アプリケーションサービス

ロジックアプリケーション(推奨)で、しかし、これはネイティブにTCPをサポートしていないようです>リスナー、私はカスタムAPIアプリケーションを構築するために見えるだろう。また、Webジョブを作成することもできます。 ...

App Serviceに任意のTCPポートを公開できますか? ...

Azure AppサービスでTCPリスナーをホストすることはできますか?

いいえおよびいいえ80/TCPと443/TCPだけが公開されており、動作する唯一のプロトコルはHTTPです。 App Serviceでカスタムリスナーを実行することはできません。

ここに記載されているサンドボックスの制限を参照してください: https://github.com/projectkudu/kudu/wiki/Azure-Web-App-sandbox#network-endpoint-listening

は、この制限は、アプリケーションサービスページに記載されていない場合はAzureのドキュメントでプルリクエストを作ること自由に感じています。

サービスファブリックはクール第三になるオプション(または第一?): https://azure.microsoft.com/en-us/services/service-fabric/

+1

WebSocketはどういう意味ですか?私はそれがWebJobのためにサポートされていると仮定しています。 – jpierson

4

私は、サポートチケットを上げ、マイクロソフトでこれを確認しました。

[Appサービスで] Azureはカスタマイズされたポートをサポートしておらず、 のhttpプロトコルしかサポートしていません。この2つの理由により、TCPリスナーの使用が拒否されます。

さらにこの情報を協力してください。 Can I open ports on Azure Websites?

関連する問題