私は、コマンドラインプログラムを実行しているが(Redisのことを起こる)は、Windows AzureのWorkerロール内の、これまでのところは良いAzureのサービス定義ファイル - ProgramEntryPoint、実行時のIPアドレスとポート
<WorkerRole name="Worker" vmsize="Small">
<Runtime executionContext="limited">
<Environment>
<Variable name="ADDRESS">
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Redis']/@address" />
</Variable>
<Variable name="PORT">
<RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/Endpoints/Endpoint[@name='Redis']/@port" />
</Variable>
</Environment>
<EntryPoint>
<ProgramEntryPoint commandLine="redis-server.exe" setReadyOnProcessStart="true" />
</EntryPoint>
</Runtime>
<Endpoints>
<InternalEndpoint name="Redis" protocol="tcp" port="6379" />
</Endpoints>
</WorkerRole>
を次のようにProgramEntryPointを使用して(できます)。 は、私は今あなたが、私はそのマスターは、IPアドレスとポートを使用しているスレーブサーバに伝える必要があります見ることができます別のWorkerRole
<WorkerRole name="SlaveWorker" vmsize="Small">
<Runtime executionContext="limited">
<EntryPoint>
<ProgramEntryPoint commandLine="echo slaveof %ADDRESS% %PORT% | redis-server.exe -" setReadyOnProcessStart="true" />
</EntryPoint>
</Runtime>
<Imports>
<Import moduleName="Diagnostics" />
<Import moduleName="RemoteAccess" />
</Imports>
<Endpoints>
<InternalEndpoint name="Redis" protocol="tcp" port="6379" />
</Endpoints>
</WorkerRole>
にサーバーのスレーブ・インスタンスを実行したいです。 Azureがその役割のためのネットワークリソースを割り当てておくまで、私は知らないものです。私はseen @smarx do something along these linesです。仕事に行くのではない -
しかし、私は私の場合
に私は1つの役割で環境変数を設定し、別でそれらを使用するように願っています。このと間違って物事のカップルがあるかもしれないと思います。
権利データは、私はRedisの-SERVER.EXEにそれを渡す必要がある道が始まり
-
におけるエコーとの有効なエントリポイントとして認識されていない利用可能であったとしても
- コードを使用して ワーカーロールのランタイムIPアドレスとポートを知る唯一の方法ですか、設定ファイルに ファイルがないのですか?
- 私がIPアドレスとポートを取得できれば、 コマンドラインをpowershellスクリプトまたはバッチファイルにプッシュする唯一の方法ですか?
あなたのご意見ありがとうございます。
回答ありがとうRyan(遅れて申し訳ありませんが、私は電子メールの回答を購読していたと思っていましたが、そうではありませんでした)。 –
1.私は、VMごとに1つのredisインスタンスを実行しようとしていました。 2.私は同じことを思っていました。スケールアウトするためにインスタンスを使用することができれば、確かに便利です。各インスタンスは異なるポートでリスンする必要があります。私はredisが選挙を内部的にどうやってどうやって行うのか、あるいはそれぞれのredisサーバにコマンドを送信し、それを適切に構成する役割スタートアッププログラムが必要かどうかはわかりません。研究のための話題。 –