Azureのtcpでのcustom load balancer probe
ぐぐってもhttpでの実装しか書いてないのでtcpの方試してみました。
ざっくりいうと対象ポートをTcpListnerでStart,Stopで開けたり閉めたりしてれば大丈夫そう。
<LoadBalancerProbes> <LoadBalancerProbe name="MyProbe" protocol="tcp" port="1234" intervalInSeconds="5" timeoutInSeconds="11" /> </LoadBalancerProbes> <Endpoints> <InputEndpoint name="Endpoint1" protocol="http" port="80" loadBalancerProbe="MyProbe" /> </Endpoints>
とServiceDefinition.csdefに書いて
対象のポートで
_listener = new TcpListener(IPAddress.Any, port);
としてload balanceさせたいタイミング・止めたいタイミングで
//させたい _listener.Start(); //とめたい _listener.Stop();
すればオケ。
Stopした後Startすればintervalなどのタイミングに応じてまたload balanceされるようになります。