2017-04-20 9 views
0

My Azure SFアプリケーションには2つのサービスがあります。アプリケーションをローカルクラスタにデプロイすると、両方のサービス(サービス)ではなく、どちらか一方のサービスだけをデプロイできますか?Azure SFアプリケーションのサービスを制御する

+0

基本的には、アプリケーションにデプロイする必要のあるサービス(プログラムのランタイムパラメータなど)を動的に制御する必要があります。 – cherry

+0

あなたの質問にその情報を追加することをお勧めします。下部の編集 –

答えて

0

はい、これは非常に明示的に制御できます。

ApplicationManifestには、いくつかのDefaultServicesが追加されています。これらは、アプリケーションに追加されたサービスから自動生成されます。 Visual Studio(またはVSTS)からデプロイするときは、暗黙的にアプリケーションプロジェクトに自動的に追加されるDeploy-FabricApplication.ps1スクリプトを使用します。このスクリプトは多くのことを同時に行います。すなわち:

  1. は読み込み、選択したターゲットのパラメータ値(例えば、クラウド、Local1Node、Local2Nodeなど)

  2. アップロードクラスタ画像ストアに新しいイメージのバージョンを取得するために発行者プロファイルファイルを解析Application Typeに新しいバージョン番号を付けてください。

  3. 作成またはアップグレード新しいイメージとバージョンに基づいてアプリケーションのインスタンスを作成または

今ApplicationManifestに各DefaultServiceのインスタンスをアップグレードし、あなた自身をこれらの手順のすべてを行うことができ、具体的には、インスタンスをスピンアップするサービスを選択することができます。

PowerShell (or CLI) cmdletsのいずれかを使用するか、FabricClientを.NETコードで使用します。

ます(PowerShellのためではなくFabricClientについても同様)であり、その後に必要なもの

を使用して、あなたがのためにインスタンスを作成するサービス(はい、あなたは同じアプリケーション内で同じサービスの複数のインスタンスを作成することができ、これはインスタンスStatelessServiceためと同じではありません)提供されたDeploy-FabricApplication.ps1を使用するだけでなく、サービスの展開方法をいつでも制御できます。たとえば、同じクラスタ上の同じアプリケーションに対して複数のテナントを実行する場合や、同じクラスタ上で同じアプリケーションの複数のバージョン/環境を実行する場合(たとえば、同じクラスタ上で開発とテストを実行する場合など)クラスタ)

+0

詳細な手順とリンクをありがとう!だから、インスタンスを作成する場合は、特定のサービスが1つも展開されないように、公開プロファイルでサービスのインスタンス数を「0」にしておくことができますか(他のサービスのインスタンス数を1にする) VSアプリケーションプロジェクトには存在しますが、 – cherry

+0

これがうまくいくかどうかわからないが、それを防ぐためのチェックがあるかもしれないが、私はそれを試していない。しかし、ノード以外のインスタンスを作成することを防ぐチェックがありますので、これも同様です。パーティションを決定する必要があるので、ステートフルなサービスに同じアプローチを使用することはできません配備時のサービスの数。デプロイ後は、そのサービスの状態が既存のパーティションにわたってどのように保持されるかを変更するので、変更しないでください。 – yoape

+0

デフォルトのサービスを使用せずにアプリケーションをデプロイすることもできます。この場合、アプリケーションの作成後に明示的にサービスを作成する必要があります。この例を見てください:https://azure.microsoft.com/en-us/resources/samples/service-fabric-dotnet-iot/ –

関連する問題