web-dev-qa-db-ja.com

AzureでTCPリスナーをホストするにはどうすればよいですか?

TCPリスナーとして機能し、指定されたポートでTCPメッセージストリームを受信し、情報をに追加するアプリケーションをAzureで構築しようとしています。データベース。着信TCP通信は証明書で保護されます。

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

クラウドサービスワーカーの役割

これは間違いなくそうなるように見えます work 。ただし、それはクラウドサービスを使用する必要があることを意味し、AppServiceが提供する機能とシンプルさを見逃しています。クラウドサービス ドキュメント は、必要なTCPポートを開く方法についても具体的に説明しています。

アプリサービス

ただし、ロジックアプリ(推奨)では、これはTCPリスナー)をネイティブにサポートしていないようです。そのため、カスタムAPIアプリを作成することを検討します。または、Webジョブを作成することもできます。

ただし、このアプローチが機能するかどうかはわかりません。次の質問があります。

  • AppServiceの任意のTCPポートを公開できますか?
    • クラウドサービスのドキュメントにはこれを行う方法が具体的に説明されていますが、AppServiceに類似したものは見つかりません。したがって、構成が不要であるか、TCP通信がAppService内で不可能であるだけです。
  • ロジックアプリ、APIアプリ、またはWebジョブ内にTCPリスナーを構築できますか?たとえば、AzureのアーキテクチャはTCPリスナーに必要な動作をサポートしていますか? ?

Azure AppServiceでTCPリスナーをホストできますか?

15
James Wood

クラウドサービスワーカーの役割

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

間違いなく動作します。

https://msdn.Microsoft.com/en-us/library/Azure/gg557553.aspx

ServiceDefinition.csdef

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

アプリサービス

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

AppServiceで任意のTCPポートを公開できますか?.。

Azure AppServiceでTCPリスナーをホストできますか?

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

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

この制限がAppServiceページに記載されていない場合は、Azureのドキュメントでプルリクエストを行ってください。

Service Fabricは、クールな3番目(または1番目?)のオプションになります: https://Azure.Microsoft.com/en-us/ services/service-fabric /

7
evilSnobu

サポートチケットを発行し、マイクロソフトに確認しました。

[AppService内] Azureはカスタマイズされたポートをサポートせず、httpプロトコルのみをサポートします。これらの2つの理由は、TCPリスナーの使用を拒否します。

また、この質問の情報をさらに協力します。 Azure Webサイトでポートを開くことはできますか?

4
James Wood