デプロイされた最初のインスタンスは常にゼロで終わりますか? 0. like "xxxx_IN_0" X インスタンスにスケールアップする場合、次のインスタンスは常に最後の数字として 1 2 3 4 を取得します。( そう思います)。再度縮小するとどうなりますか? インスタンスの1つをランダムに取得することを読みました。したがって、1 つのインスタンスにスケールダウンする場合、まだ実行中の ID がどの ID であるかを知っているとは限りません。
スケールアップとスケールダウンの際に ID をいじっていて、それらのことを知っている人はいますか?
私が尋ねる理由は、インスタンスの 1 つだけで実行したい追加のロジックがあるためです。「xxx_IN_0」が常に存在すると仮定できる場合は、最後の ID がゼロであることを簡単に確認するだけで済みます。そうでない場合は、すべての ID を確認することを検討しています。現在のインスタンスが最も低い場合は、その魔法を実行します。
最後のケースの場合、スケールアップまたはスケールダウンが行われたときに監視できるイベントはありますか?
アップデート
回答から:
if (RoleEnvironment.IsAvailable)
{
RoleEnvironment.Changed += RoleEnvironment_Changed;
}
void RoleEnvironment_Changed(object sender, RoleEnvironmentChangedEventArgs e)
{
var change = e.Changes.OfType<RoleEnvironmentTopologyChange>().FirstOrDefault();
if (change != null)
{
Trace.TraceInformation("RoleEnvironmentTopologyChange at RoleName '{0}'", change.RoleName);
}
スケールアップおよびスケールダウンすると、トレースログに情報が表示されません。
イベントをトリガーするには、内部エンドポイントを設定する必要があります。
<InternalEndpoint name="InternalEndpoint1" protocol="http" />
http://blogs.msdn.com/b/windowsazure/archive/2011/01/04/responding-to-role-topology-changes.aspx