Azure キューの長さに基づいて、Azure ワーカー ロールを自動スケーリングしたいと考えています。私が見たすべてのドキュメントによると、queueLength オペランドを使用すると、これは非常に簡単なはずです。
オートスケーラーを実装し、それをサービスにアップロードして、一連の要素をキューに追加しましたが、インスタンスの数が増えていません。
トラブルシューティングの最善の方法は何ですか? 役割にリモート デスクトップで接続しましたが、イベント ログに何もありません。確認できる自動スケーリング イベント/エラーのログはありますか?
編集: 開発環境でアプリを実行すると、オートスケーラーが ServiceInfo.xml を正常に読み込んだことがわかります。キュー エントリとロール エントリがあります。ただし、ルールは rules.xml ファイルからロードされていないようです。
詳細編集: rules.xml ファイルから reactrules ノードとオペランド ノードを削除すると、制約ルールが正常に読み込まれます。したがって、問題はそれらのノードの 1 つにあります。
私のserviceinfo xmlファイル:
<?xml version="1.0" encoding="utf-8"?>
<serviceModel xmlns="http://schemas.microsoft.com/practices/2011/entlib/autoscaling/serviceModel">
<subscriptions>
<subscription name="MySubscription" subscriptionId="blah" certificateThumbprint="blah" certificateStoreName="My" certificateStoreLocation="CurrentUser">
<storageAccounts>
<storageAccount alias="targetstorage" connectionString="DefaultEndpointsProtocol=https;AccountName=blah; AccountKey="blah">
<queues>
<queue alias="auditqueue" queueName="auditqueue"/>
</queues>
</storageAccount>
</storageAccounts>
<services>
<service dnsPrefix="blah" slot="Production" scalingMode="Scale">
<roles>
<role alias="ScalingWebRole" roleName="ScalingWebRole" wadStorageAccountName="targetstorage" />
</roles>
</service>
</services>
</subscription>
</subscriptions>
</serviceModel>
私のルールxmlファイル:
<constraintRules>
<rule name="Default" enabled="true" rank="1">
<actions>
<range target="ScalingWebRole" min="1" max="10" />
</actions>
</rule>
</constraintRules>
<reactiveRules>
<rule name="Scale up when queue is long" enabled="true">
<actions>
<scale target="ScalingWebRole" by="1" />
</actions>
<when>
<greaterOrEqual operand="QueueLength_Avg" than="5" />
</when>
</rule>
<rule name="Scale down when queue is short" enabled="true">
<actions>
<scale target="ScalingWebRole" by="-1" />
</actions>
<when>
<less operand="QueueLength_Avg" than="5" />
</when>
</rule>
</reactiveRules>
<operands>
<queueLength alias="QueueLength_Avg" aggregate="Average" queue="auditqueue" timespan="00:01:00" />
</operands>
</rules>