0

WASABi のドキュメントを見ていましたが、このライブラリの特定の側面について混乱しています。

カスタムのリアクティブ ルールを作成する必要があります。たとえば、このルールは毎分実行され、このルールの「スケール」アクションは「x」の量だけスケールアップする必要があります。「スケール」アクションを特定の数値(1または2など)に設定できるようですが、カスタムオペランドなどによって計算された変数を渡すことはできないようです。

カスタム オペランドを作成して自分の状態を確認できることは理解していますが、カスタム オペランドで、「スケール」アクションがターゲットのワーカー ロールをスケールする必要がある量を計算し、この値を「スケール」アクションに渡す必要があります。

これを達成するために XML の外でこれらのルールを定義する方法はありますか?

どんな助けでも大歓迎です!

4

1 に答える 1

1

アクションは、数値または比率でカウントを増減できます。したがって、動的な増分または減分が必要な場合は、カスタム アクションを作成する必要があると思います。IRuleEvaluationContext から必要な情報を引き出すことができると思います。

インスタンス数を変更するには、デプロイ構成を変更する必要があります。https://social.msdn.microsoft.com/forums/azure/en-US/dbbf14d1-fd40-4aa3-8c65-a2424702816b/few-question-regarding-ching-instance-count-programmatically?forum=windowsazuredevelopment&prof=requiredを参照してくださいいくつかの議論のために。

これは、.NET 用の Azure 管理ライブラリと ComputeManagementClient を使用して実行できるはずです。何かのようなもの:

using (ComputeManagementClient client = new ComputeManagementClient(credentials))
{
    var response = await client.Deployments.GetBySlotAsync(serviceName, slot);

    XDocument config = XDocument.Parse(response.Configuration);

    // Change the config

    StringBuilder builder = new StringBuilder();

    using (TextWriter writer = new StringWriter(builder))
    {
        config.Save(writer);
    }

    string newConfig = builder.ToString();

    await client.Deployments.BeginChangingConfigurationBySlotAsync(serviceName, slot, new DeploymentChangeConfigurationParameters(newConfig));
}
于 2016-02-20T19:47:54.020 に答える