既存の実行可能ファイルのパッケージ化と Service Fabric へのデプロイPackage and deploy an existing executable to Service Fabric

ゲスト実行可能ファイルを既存の実行可能ファイルとしてパッケージ化する際、Visual Studio プロジェクト テンプレートを使用するか、アプリケーション パッケージを手動で作成するかを選択できます。When packaging an existing executable as a guest executable, you can choose either to use a Visual Studio project template or to create the application package manually. Visual Studio を使用する場合、アプリケーション パッケージの構造とマニフェスト ファイルは新しいプロジェクト テンプレートによって作成されます。Using Visual Studio, the application package structure and manifest files are created by the new project template for you.

ヒント

既存の Windows 実行可能ファイルをパッケージ化してサービスにするには、Visual Studio または Yeoman (Linux の場合) を使用すると最も簡単に行うことができます。The easiest way to package an existing Windows executable into a service is to use Visual Studio and on Linux to use Yeoman

Visual Studio を使用した既存の実行可能ファイルのパッケージ化とデプロイUse Visual Studio to package and deploy an existing executable

Visual Studio には、ゲスト実行可能ファイルを Service Fabric クラスターにデプロイするときに役立つ Service Fabric サービスのテンプレートが用意されています。Visual Studio provides a Service Fabric service template to help you deploy a guest executable to a Service Fabric cluster.

  1. [ファイル] 、 > [新しいプロジェクト] の順に選択し、Service Fabric アプリケーションを作成します。Choose File > New Project, and create a Service Fabric application.
  2. サービス テンプレートとしてゲスト実行可能ファイルを選択します。Choose Guest Executable as the service template.
  3. [参照] をクリックし、実行可能ファイルが含まれたフォルダーを選択します。残りのパラメーターを入力し、サービスを作成します。Click Browse to select the folder with your executable and fill in the rest of the parameters to create the service.
    • Code Package BehaviorCode Package Behavior. - フォルダー内の内容をすべて Visual Studio プロジェクトにコピーするように設定できます。これは、実行可能ファイルが変更されない場合に便利です。Can be set to copy all the content of your folder to the Visual Studio Project, which is useful if the executable does not change. 実行可能ファイルが変更されることが予想され、新しいビルドを動的に取得する機能が必要な場合は、フォルダーにリンクすることもできます。If you expect the executable to change and want the ability to pick up new builds dynamically, you can choose to link to the folder instead. Visual Studio でアプリケーション プロジェクトを作成するときは、リンクされたフォルダーを使用できます。You can use linked folders when creating the application project in Visual Studio. このフォルダーを使用すると、プロジェクト内からソースの場所にリンクされるため、ソースのリンク先でゲスト実行可能ファイルを更新できるようになります。This links to the source location from within the project, making it possible for you to update the guest executable in its source destination. これらの更新はビルド時にアプリケーション パッケージの一部になります。Those updates become part of the application package on build.
    • Program - サービスを開始するために実行する必要がある実行可能ファイルを指定します。Program specifies the executable that should be run to start the service.
    • Arguments - 実行可能ファイルに渡す引数を指定します。Arguments specifies the arguments that should be passed to the executable. 引数を含むパラメーターの一覧を指定することもできます。It can be a list of parameters with arguments.
    • WorkingFolder - 開始するプロセスの作業ディレクトリを指定します。WorkingFolder specifies the working directory for the process that is going to be started. 次の 3 つの値のいずれかを指定できます。You can specify three values:
      • CodeBase は、作業ディレクトリをアプリケーション パッケージ内のコード ディレクトリ (前述のファイル構造内に見られる Code ディレクトリ) に設定するよう指定します。CodeBase specifies that the working directory is going to be set to the code directory in the application package (Code directory shown in the preceding file structure).
      • CodePackage は、作業ディレクトリをアプリケーション パッケージのルート (前述のファイル構造内に見られる GuestService1Pkg) に設定するよう指定します。CodePackage specifies that the working directory is going to be set to the root of the application package (GuestService1Pkg shown in the preceding file structure).
      • Work は、work という名前のサブディレクトリにファイルを配置するよう指定します。Work specifies that the files are placed in a subdirectory called work.
  4. サービスに名前を付けて、 [OK] をクリックします。Give your service a name, and click OK.
  5. サービスに通信用のエンドポイントが必要な場合は、ServiceManifest.xml ファイルに Protocol、Port、Type を追加できます。If your service needs an endpoint for communication, you can now add the protocol, port, and type to the ServiceManifest.xml file. (例: <Endpoint Name="NodeAppTypeEndpoint" Protocol="http" Port="3000" UriScheme="http" PathSuffix="myapp/" Type="Input" />)。For example: <Endpoint Name="NodeAppTypeEndpoint" Protocol="http" Port="3000" UriScheme="http" PathSuffix="myapp/" Type="Input" />.
  6. これで、ローカル クラスターに対してパッケージ化と発行の操作を使用できるようになりました。この操作を行うには、Visual Studio でソリューションをデバッグします。You can now use the package and publish action against your local cluster by debugging the solution in Visual Studio. 準備ができたら、アプリケーションをリモート クラスターに発行するか、ソリューションをソース管理にチェックインすることができます。When ready, you can publish the application to a remote cluster or check in the solution to source control.
  7. Service Fabric Explorer で実行されているゲスト実行可能サービスを表示する方法については、「実行中のアプリケーションの確認」を参照してください。Read check your running application to see how to view your guest executable service running in Service Fabric Explorer.

例のチュートリアルについては、Visual Studio を使用した最初のゲスト実行可能アプリケーションの作成に関するページを参照してください。For an example walkthrough, see Create your first guest executable application using Visual Studio.

Linux で Yeoman を使用した既存の実行可能ファイルのパッケージ化とデプロイUse Yeoman to package and deploy an existing executable on Linux

Linux でゲスト実行可能ファイルを作成してデプロイする手順は、csharp または java アプリケーションをデプロイする場合と同じです。The procedure for creating and deploying a guest executable on Linux is the same as deploying a csharp or java application.

  1. ターミナルで、「yo azuresfguest」と入力します。In a terminal, type yo azuresfguest.
  2. アプリケーションに名前を付けます。Name your application.
  3. サービスの名前を指定し、実行可能ファイルのパスや呼び出すときに渡す必要があるパラメーターなどの詳細を提供します。Name your service, and provide the details including path of the executable and the parameters it must be invoked with.

Yeoman により、インストールおよびアンインストール スクリプトと共に、適切なアプリケーション ファイルとマニフェスト ファイルが含まれたアプリケーション パッケージが作成されます。Yeoman creates an application package with the appropriate application and manifest files along with install and uninstall scripts.

既存の実行可能ファイルの手動によるパッケージ化とデプロイManually package and deploy an existing executable

ゲスト実行可能ファイルを手動でパッケージ化するプロセスは、次の一般的な手順に基づいています。The process of manually packaging a guest executable is based on the following general steps:

  1. パッケージ ディレクトリ構造を作成します。Create the package directory structure.
  2. アプリケーションのコードと構成ファイルを追加します。Add the application's code and configuration files.
  3. サービス マニフェスト ファイルを編集します。Edit the service manifest file.
  4. アプリケーション マニフェスト ファイルを編集します。Edit the application manifest file.

パッケージ ディレクトリ構造を作成するCreate the package directory structure

まず、「Azure Service Fabric アプリのパッケージ化」の説明に従ってディレクトリ構造を作成します。You can start by creating the directory structure, as described in Package an Azure Service Fabric App.

アプリケーションのコードと構成ファイルを追加するAdd the application's code and configuration files

ディレクトリ構造を作成したら、アプリケーションのコード ファイルと構成ファイルを、code ディレクトリおよび config ディレクトリに追加できます。After you have created the directory structure, you can add the application's code and configuration files under the code and config directories. code ディレクトリまたは config ディレクトリに、追加のディレクトリまたはサブディレクトリを作成することもできます。You can also create additional directories or subdirectories under the code or config directories.

Service Fabric では、アプリケーション ルート ディレクトリの内容が xcopy されるので、2 つの上位ディレクトリ、コード、設定を作成する以外に使用する定義済みの構造はありませんService Fabric does an xcopy of the content of the application root directory, so there is no predefined structure to use other than creating two top directories, code and settings. (必要に応じて別の名前を選択できます。(You can pick different names if you want. 詳細については、次のセクションで説明します)。More details are in the next section.)

注意

アプリケーションに必要なすべてのファイルと依存関係を必ず含めるようにしてください。Make sure that you include all the files and dependencies that the application needs. Service Fabric では、アプリケーションのサービスがデプロイされるクラスター内のすべてのノードに、アプリケーション パッケージの内容がコピーされます。Service Fabric copies the content of the application package on all nodes in the cluster where the application's services are going to be deployed. そのため、パッケージには、アプリケーションを実行するのに必要なすべてのコードが含まれている必要があります。The package should contain all the code that the application needs to run. 依存関係がインストール済みであることを前提としないでください。Do not assume that the dependencies are already installed.

サービス マニフェスト ファイルを編集するEdit the service manifest file

次の手順では、サービス マニフェスト ファイルを編集して、次の情報を含めます。The next step is to edit the service manifest file to include the following information:

  • サービスの種類の名前。The name of the service type. これは、Service Fabric がサービスを識別するために使用する ID です。This is an ID that Service Fabric uses to identify a service.
  • アプリケーションの起動に使用するコマンド (ExeHost)。The command to use to launch the application (ExeHost).
  • アプリケーションをセットアップするために実行する必要のあるスクリプト (SetupEntrypoint)。Any script that needs to be run to set up the application (SetupEntrypoint).

ServiceManifest.xml ファイルの例を次に示します。The following is an example of a ServiceManifest.xml file:

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" Name="NodeApp" Version="1.0.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
   <ServiceTypes>
      <StatelessServiceType ServiceTypeName="NodeApp" UseImplicitHost="true"/>
   </ServiceTypes>
   <CodePackage Name="code" Version="1.0.0.0">
      <SetupEntryPoint>
         <ExeHost>
             <Program>scripts\launchConfig.cmd</Program>
         </ExeHost>
      </SetupEntryPoint>
      <EntryPoint>
         <ExeHost>
            <Program>node.exe</Program>
            <Arguments>bin/www</Arguments>
            <WorkingFolder>CodePackage</WorkingFolder>
         </ExeHost>
      </EntryPoint>
   </CodePackage>
   <Resources>
      <Endpoints>
         <Endpoint Name="NodeAppTypeEndpoint" Protocol="http" Port="3000" Type="Input" />
      </Endpoints>
   </Resources>
</ServiceManifest>

次のセクションでは、更新する必要のあるファイルの別の部分を見てみましょう。The following sections go over the different parts of the file that you need to update.

ServiceTypes の更新Update ServiceTypes

<ServiceTypes>
  <StatelessServiceType ServiceTypeName="NodeApp" UseImplicitHost="true" />
</ServiceTypes>
  • ServiceTypeNameには、任意の名前を選択できます。You can pick any name that you want for ServiceTypeName. この値は、サービスを識別するために ApplicationManifest.xml ファイルで使用されます。The value is used in the ApplicationManifest.xml file to identify the service.
  • UseImplicitHost="true" を指定します。Specify UseImplicitHost="true". サービスは自己完結型アプリに基づいているため、プロセスとして起動し、正常性を監視する処理のみが必要であることを、この属性で Service Fabric に伝えます。This attribute tells Service Fabric that the service is based on a self-contained app, so all Service Fabric needs to do is to launch it as a process and monitor its health.

CodePackage の更新Update CodePackage

CodePackage 要素には、サービスのコードの場所 (およびバージョン) を指定します。The CodePackage element specifies the location (and version) of the service's code.

<CodePackage Name="Code" Version="1.0.0.0">

Name 要素は、サービスのコードが含まれるアプリケーション パッケージ内のディレクトリ名を指定するために使用されます。The Name element is used to specify the name of the directory in the application package that contains the service's code. CodePackage にも version 属性があります。CodePackage also has the version attribute. この属性を使用すると、コードのバージョンを指定できます。また、Service Fabric のアプリケーション ライフサイクル管理インフラストラクチャを使用してサービスのコードをアップグレードするためにも使用できます。This can be used to specify the version of the code, and can also potentially be used to upgrade the service's code by using the application lifecycle management infrastructure in Service Fabric.

省略可能:SetupEntrypoint の更新Optional: Update SetupEntrypoint

<SetupEntryPoint>
   <ExeHost>
       <Program>scripts\launchConfig.cmd</Program>
   </ExeHost>
</SetupEntryPoint>

SetupEntryPoint 要素を使用して、サービスのコードが起動される前に実行する必要がある実行可能ファイルまたはバッチ ファイルを指定します。The SetupEntryPoint element is used to specify any executable or batch file that should be executed before the service's code is launched. これはオプションの手順なので、必要な初期化が存在しない場合は追加する必要はありません。It is an optional step, so it does not need to be included if there is no initialization required. SetupEntryPoint は、サービスを再起動するたびに実行されます。The SetupEntryPoint is executed every time the service is restarted.

SetupEntryPoint は 1 つしかないため、アプリケーションのセットアップに複数のスクリプトが必要な場合は、セットアップ スクリプトを 1 つのバッチ ファイルにグループ化する必要があります。There is only one SetupEntryPoint, so setup scripts need to be grouped in a single batch file if the application's setup requires multiple scripts. SetupEntryPoint は、あらゆる種類のファイル (実行可能ファイル、バッチ ファイル、PowerShell コマンドレット) を実行できます。The SetupEntryPoint can execute any type of file: executable files, batch files, and PowerShell cmdlets. 詳細については、 SetupEntryPoint の構成に関するページをご覧ください。For more details, see Configure SetupEntryPoint.

上の例では、SetupEntryPoint は code ディレクトリの scripts サブディレクトリにある LaunchConfig.cmd という名前のバッチ ファイルを実行します (WorkingFolder 要素が CodeBase に設定されている場合)。In the preceding example, the SetupEntryPoint runs a batch file called LaunchConfig.cmd that is located in the scripts subdirectory of the code directory (assuming the WorkingFolder element is set to CodeBase).

EntryPoint の更新Update EntryPoint

<EntryPoint>
  <ExeHost>
    <Program>node.exe</Program>
    <Arguments>bin/www</Arguments>
    <WorkingFolder>CodeBase</WorkingFolder>
  </ExeHost>
</EntryPoint>

サービス マニフェスト ファイルの EntryPoint 要素では、サービスの起動方法を指定します。The EntryPoint element in the service manifest file is used to specify how to launch the service.

ExeHost 要素は、サービスの起動に使用する実行可能ファイル (および引数) を指定します。The ExeHost element specifies the executable (and arguments) that should be used to launch the service. 必要に応じて、IsExternalExecutable="true" 属性を ExeHost に追加して、プログラムがコード パッケージに含まれない外部の実行可能ファイルであることを示すことができます。You can optionally add the IsExternalExecutable="true" attribute to ExeHost to indicate that the program is an external executable outside of the code package. たとえば、「 <ExeHost IsExternalExecutable="true"> 」のように入力します。For example, <ExeHost IsExternalExecutable="true">.

  • Program には、サービスを開始する必要がある実行可能ファイルの名前を指定します。Program specifies the name of the executable that should start the service.
  • Arguments には、実行可能ファイルに渡す引数を指定します。Arguments specifies the arguments that should be passed to the executable. 引数を含むパラメーターの一覧を指定することもできます。It can be a list of parameters with arguments.
  • WorkingFolder には、開始するプロセスの作業ディレクトリを指定します。WorkingFolder specifies the working directory for the process that is going to be started. 次の 3 つの値のいずれかを指定できます。You can specify three values:
    • CodeBase は、作業ディレクトリをアプリケーション パッケージ内のコード ディレクトリ (前述のファイル構造内の Code ディレクトリ) に設定するよう指定します。CodeBase specifies that the working directory is going to be set to the code directory in the application package (Code directory in the preceding file structure).
    • CodePackage は、作業ディレクトリをアプリケーション パッケージのルート (前述のファイル構造内の GuestService1Pkg) に設定するよう指定します。CodePackage specifies that the working directory is going to be set to the root of the application package (GuestService1Pkg in the preceding file structure).
      • Work は、work という名前のサブディレクトリにファイルを配置するよう指定します。Work specifies that the files are placed in a subdirectory called work.

WorkingFolder は、アプリケーション スクリプトと初期化スクリプトのいずれかが相対パスを使用できるように、正しい作業ディレクトリを設定するのに便利です。The WorkingFolder is useful to set the correct working directory so that relative paths can be used by either the application or initialization scripts.

エンドポイントの更新と、通信のための Naming Service の登録Update Endpoints and register with Naming Service for communication

<Endpoints>
   <Endpoint Name="NodeAppTypeEndpoint" Protocol="http" Port="3000" Type="Input" />
</Endpoints>

上の例では、 Endpoint 要素に、アプリケーションがリッスンできるエンドポイントを指定しています。In the preceding example, the Endpoint element specifies the endpoints that the application can listen on. この例の場合、Node.js アプリケーションはポート 3000 で HTTP をリッスンします。In this example, the Node.js application listens on http on port 3000.

また、他のサービスがこのサービスのエンドポイント アドレスを解決できるように、このエンドポイントを Naming Service に発行するよう Service Fabric に依頼できます。Furthermore you can ask Service Fabric to publish this endpoint to the Naming Service so other services can discover the endpoint address to this service. これにより、サービス間、つまりゲスト実行可能ファイル間で通信できるようになります。This enables you to be able to communicate between services that are guest executables. 発行されるエンドポイント アドレスの形式は、 UriScheme://IPAddressOrFQDN:Port/PathSuffixです。The published endpoint address is of the form UriScheme://IPAddressOrFQDN:Port/PathSuffix. UriSchemePathSuffix はオプションの属性です。UriScheme and PathSuffix are optional attributes. IPAddressOrFQDN は、この実行可能ファイルが配置されているノードの IP アドレスまたは完全修飾ドメイン名で、自動的に算定されます。IPAddressOrFQDN is the IP address or fully qualified domain name of the node this executable gets placed on, and it is calculated for you.

次の例では、サービスがデプロイされると、サービス インスタンス用に発行されたエンドポイントが Service Fabric Explorer に http://10.1.4.92:3000/myapp/ のように表示されます。In the following example, once the service is deployed, in Service Fabric Explorer you see an endpoint similar to http://10.1.4.92:3000/myapp/ published for the service instance. または、ローカル コンピューターの場合は http://localhost:3000/myapp/ と表示されます。Or if this is a local machine, you see http://localhost:3000/myapp/.

<Endpoints>
   <Endpoint Name="NodeAppTypeEndpoint" Protocol="http" Port="3000"  UriScheme="http" PathSuffix="myapp/" Type="Input" />
</Endpoints>

サービス間の通信で、これらのアドレスを リバース プロキシ と共に使用することができます。You can use these addresses with reverse proxy to communicate between services.

アプリケーション マニフェスト ファイルを編集するEdit the application manifest file

Servicemanifest.xml ファイルを構成したら、適切なサービスの種類と名前が使用されるように ApplicationManifest.xml ファイルを少し変更する必要があります。Once you have configured the Servicemanifest.xml file, you need to make some changes to the ApplicationManifest.xml file to ensure that the correct service type and name are used.

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest xmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="NodeAppType" ApplicationTypeVersion="1.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
   <ServiceManifestImport>
      <ServiceManifestRef ServiceManifestName="NodeApp" ServiceManifestVersion="1.0.0.0" />
   </ServiceManifestImport>
</ApplicationManifest>

ServiceManifestImportServiceManifestImport

ServiceManifestImport 要素では、アプリに追加する 1 つ以上のサービスを指定できます。In the ServiceManifestImport element, you can specify one or more services that you want to include in the app. サービスは、ServiceManifest.xml ファイルが配置されているディレクトリの名前を指定する ServiceManifestName で参照されます。Services are referenced with ServiceManifestName, which specifies the name of the directory where the ServiceManifest.xml file is located.

<ServiceManifestImport>
  <ServiceManifestRef ServiceManifestName="NodeApp" ServiceManifestVersion="1.0.0.0" />
</ServiceManifestImport>

ログを設定するSet up logging

ゲスト実行可能ファイルについて、アプリケーションと構成のスクリプトにエラーがあるかどうかを確認するコンソールのログを表示できると便利です。For guest executables, it is useful to be able to see console logs to find out if the application and configuration scripts show any errors. コンソールのリダイレクトは、ServiceManifest.xml ファイルで ConsoleRedirection 要素を使用して構成できます。Console redirection can be configured in the ServiceManifest.xml file using the ConsoleRedirection element.

警告

アプリケーションのフェールオーバーに影響する可能性があるため、運用環境でデプロイされたアプリケーションのコンソール リダイレクト ポリシーは決して使用しないでください。Never use the console redirection policy in an application that is deployed in production because this can affect the application failover. これは、ローカル デプロイおよびデバッグの目的のため "だけ" に使用します。Only use this for local development and debugging purposes.

<EntryPoint>
  <ExeHost>
    <Program>node.exe</Program>
    <Arguments>bin/www</Arguments>
    <WorkingFolder>CodeBase</WorkingFolder>
    <ConsoleRedirection FileRetentionCount="5" FileMaxSizeInKb="2048"/>
  </ExeHost>
</EntryPoint>

ConsoleRedirection を使用してコンソール出力 (stdout と stderr の両方) を作業ディレクトリにリダイレクトすることができます。ConsoleRedirection can be used to redirect console output (both stdout and stderr) to a working directory. これは、Service Fabric クラスター内のアプリケーションのセットアップまたは実行中にエラーがないことを確認する機能を提供します。This provides the ability to verify that there are no errors during the setup or execution of the application in the Service Fabric cluster.

FileRetentionCount によって、作業ディレクトリ内に保存されているファイルの数を判断できます。FileRetentionCount determines how many files are saved in the working directory. たとえば、値が 5 の場合は、これまでの 5 回の実行のログ ファイルが作業ディレクトリに格納されていることを意味します。A value of 5, for example, means that the log files for the previous five executions are stored in the working directory.

FileMaxSizeInKb では、ログ ファイルの最大サイズを指定します。FileMaxSizeInKb specifies the maximum size of the log files.

ログ ファイルは、サービスの作業ディレクトリのいずれかに保存されます。Log files are saved in one of the service's working directories. ファイルの場所を特定するには、Service Fabric Explorer を使用して、サービスが実行されているノードと使用されている作業ディレクトリを確認します。To determine where the files are located, use Service Fabric Explorer to determine which node the service is running on, and which working directory is being used. この方法については、この記事の後半で説明します。This process is covered later in this article.

DeploymentDeployment

最後のステップは、アプリケーションのデプロイです。The last step is to deploy your application. 次の PowerShell スクリプトは、ローカル デプロイ用クラスターにアプリケーションをデプロイし、新しい Service Fabric サービスを開始する方法を示しています。The following PowerShell script shows how to deploy your application to the local development cluster, and start a new Service Fabric service.


Connect-ServiceFabricCluster localhost:19000

Write-Host 'Copying application package...'
Copy-ServiceFabricApplicationPackage -ApplicationPackagePath 'C:\Dev\MultipleApplications' -ImageStoreConnectionString 'file:C:\SfDevCluster\Data\ImageStoreShare' -ApplicationPackagePathInImageStore 'nodeapp'

Write-Host 'Registering application type...'
Register-ServiceFabricApplicationType -ApplicationPathInImageStore 'nodeapp'

New-ServiceFabricApplication -ApplicationName 'fabric:/nodeapp' -ApplicationTypeName 'NodeAppType' -ApplicationTypeVersion 1.0

New-ServiceFabricService -ApplicationName 'fabric:/nodeapp' -ServiceName 'fabric:/nodeapp/nodeappservice' -ServiceTypeName 'NodeApp' -Stateless -PartitionSchemeSingleton -InstanceCount 1

ヒント

パッケージが大規模な場合や、パッケージに多くのファイルが含まれる場合は、パッケージを圧縮してからイメージ ストアにコピーします。Compress the package before copying to the image store if the package is large or has many files. 詳細については、こちらをご覧ください。Read more here.

Service Fabric サービスは、さまざまな "構成" にデプロイできます。A Service Fabric service can be deployed in various "configurations." たとえば、単一または複数のインスタンスとしてデプロイしたり、Service Fabric クラスターの各ノードに 1 つのサービス インスタンスが配置されるようにデプロイしたりできます。For example, it can be deployed as single or multiple instances, or it can be deployed in such a way that there is one instance of the service on each node of the Service Fabric cluster.

New-ServiceFabricService コマンドレットの InstanceCount パラメーターは、Service Fabric クラスターで開始するサービス インスタンスの数を指定するために使用します。The InstanceCount parameter of the New-ServiceFabricService cmdlet is used to specify how many instances of the service should be launched in the Service Fabric cluster. InstanceCount 値は、デプロイするアプリケーションの種類に応じて設定できます。You can set the InstanceCount value, depending on the type of application that you are deploying. よく使用されるシナリオは 2 つあります。The two most common scenarios are:

  • InstanceCount = "1"InstanceCount = "1". 1 つのサービス インスタンスのみがクラスターにデプロイされます。In this case, only one instance of the service is deployed in the cluster. サービスがデプロイされるノードは、Service Fabric スケジューラによって決まります。Service Fabric's scheduler determines which node the service is going to be deployed on.
  • InstanceCount ="-1"InstanceCount ="-1". 1 つのサービス インスタンスが、Service Fabric クラスターのすべてのノードにデプロイされます。In this case, one instance of the service is deployed on every node in the Service Fabric cluster. 結果として、1 つ (のみ) のサービス インスタンスがクラスターの各ノードに存在することになります。The result is having one (and only one) instance of the service for each node in the cluster.

クライアント アプリケーションはクラスター内のいずれかのノードに "接続" するだけでエンドポイントを使用できるため、フロントエンド アプリケーション (REST エンドポイントなど) には便利な構成です。This is a useful configuration for front-end applications (for example, a REST endpoint), because client applications need to "connect" to any of the nodes in the cluster to use the endpoint. この構成は、Service Fabric クラスターのすべてのノードがロード バランサーに接続されている場合などにも使用できます。This configuration can also be used when, for example, all nodes of the Service Fabric cluster are connected to a load balancer. クライアントのトラフィックは、クラスター内のすべてのノードで実行されているサービス間で配布できます。Client traffic can then be distributed across the service that is running on all nodes in the cluster.

実行中のアプリケーションの確認Check your running application

Service Fabric エクスプローラーで、サービスが実行されているノードを特定します。In Service Fabric Explorer, identify the node where the service is running. この例では、Node1 で実行されています。In this example, it runs on Node1:

サービスが実行されているノード

ノードに移動してアプリケーションを参照した場合は、ディスク上の場所を含むノードの重要な情報が表示されます。If you navigate to the node and browse to the application, you see the essential node information, including its location on disk.

ディスク上の場所

サーバー エクスプローラーを使用してディレクトリを参照した場合は、次のスクリーンショットに示すように、作業ディレクトリとサービスのログ フォルダーを確認できます。If you browse to the directory by using Server Explorer, you can find the working directory and the service's log folder, as shown in the following screenshot:

ログの場所

次の手順Next steps

この記事では、ゲスト実行可能ファイルをパッケージ化し、Service Fabric にデプロイする方法について説明しました。In this article, you have learned how to package a guest executable and deploy it to Service Fabric. 関連する情報やタスクは、次の記事を参照してください。See the following articles for related information and tasks.