Empacotar e implantar um executável existente no Service FabricPackage and deploy an existing executable to Service Fabric

Ao empacotar um executável existente como um executável convidado, você pode optar por usar um modelo de projeto do Visual Studio ou criar o pacote de aplicativos manualmente.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. Usando o Visual Studio, a estrutura do pacote de aplicativos e os arquivos de manifesto são criados pelo novo modelo de projeto para você.Using Visual Studio, the application package structure and manifest files are created by the new project template for you.

Dica

A maneira mais fácil de empacotar um executável existente do Windows em um serviço é usar o Visual Studio e o Linux para usar o YeomanThe easiest way to package an existing Windows executable into a service is to use Visual Studio and on Linux to use Yeoman

Usar o Visual Studio para empacotar e implantar um executável existenteUse Visual Studio to package and deploy an existing executable

O Visual Studio fornece um modelo de serviço Service Fabric para ajudá-lo a implantar um executável convidado em um Cluster Service Fabric.Visual Studio provides a Service Fabric service template to help you deploy a guest executable to a Service Fabric cluster.

  1. Escolha arquivo > novo projetoe crie um Service Fabric aplicativo.Choose File > New Project, and create a Service Fabric application.
  2. Escolha executável convidado como o modelo de serviço.Choose Guest Executable as the service template.
  3. Clique em procurar para selecionar a pasta com seu executável e preencha o restante dos parâmetros para criar o serviço.Click Browse to select the folder with your executable and fill in the rest of the parameters to create the service.
    • Comportamento do pacote de códigos.Code Package Behavior. Pode ser definido para copiar todo o conteúdo da pasta para o projeto do Visual Studio, o que será útil se o executável não for alterado.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. Se você espera que o executável seja alterado e queira que a capacidade de obter novas compilações dinamicamente, você pode optar por vincular à pasta em vez disso.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. Você pode usar pastas vinculadas ao criar o projeto de aplicativo no Visual Studio.You can use linked folders when creating the application project in Visual Studio. Isso é vinculado ao local de origem de dentro do projeto, possibilitando que você atualize o executável do convidado em seu destino de origem.This links to the source location from within the project, making it possible for you to update the guest executable in its source destination. Essas atualizações se tornam parte do pacote de aplicativos na compilação.Those updates become part of the application package on build.
    • Programa especifica o executável que deve ser executado para iniciar o serviço.Program specifies the executable that should be run to start the service.
    • Argumentos especifica os argumentos que devem ser passados para o executável.Arguments specifies the arguments that should be passed to the executable. Pode ser uma lista de parâmetros com argumentos.It can be a list of parameters with arguments.
    • WorkingFolder especifica o diretório de trabalho para o processo que será iniciado.WorkingFolder specifies the working directory for the process that is going to be started. Você pode especificar três valores:You can specify three values:
      • CodeBaseEspecifica que o diretório de trabalho será definido para o diretório de código no pacote de aplicativos (Code diretório mostrado na estrutura de arquivo anterior).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).
      • CodePackageEspecifica que o diretório de trabalho será definido como a raiz do pacote de aplicativos (GuestService1Pkg mostrado na estrutura de arquivo anterior).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).
      • WorkEspecifica que os arquivos são colocados em um subdiretório chamado trabalho.Work specifies that the files are placed in a subdirectory called work.
  4. Dê um nome ao serviço e clique em OK.Give your service a name, and click OK.
  5. Se o serviço precisar de um ponto de extremidade para comunicação, agora você poderá adicionar o protocolo, a porta e o tipo ao arquivo do serviço de manifesto. xml.If your service needs an endpoint for communication, you can now add the protocol, port, and type to the ServiceManifest.xml file. Por exemplo: <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. Agora você pode usar o pacote e a ação de publicação em seu cluster local Depurando a solução no Visual Studio.You can now use the package and publish action against your local cluster by debugging the solution in Visual Studio. Quando estiver pronto, você poderá publicar o aplicativo em um cluster remoto ou fazer check-in da solução para o controle do código-fonte.When ready, you can publish the application to a remote cluster or check in the solution to source control.
  7. Leia verificar seu aplicativo em execução para ver como exibir seu serviço executável convidado em execução no Service Fabric Explorer.Read check your running application to see how to view your guest executable service running in Service Fabric Explorer.

Para obter um exemplo de instruções, consulte criar seu primeiro aplicativo executável de convidado usando o Visual Studio.For an example walkthrough, see Create your first guest executable application using Visual Studio.

Usar o Yeoman para empacotar e implantar um executável existente no LinuxUse Yeoman to package and deploy an existing executable on Linux

O procedimento para criar e implantar um executável convidado no Linux é o mesmo que implantar um aplicativo Csharp ou Java.The procedure for creating and deploying a guest executable on Linux is the same as deploying a csharp or java application.

  1. Num terminal, escreva yo azuresfguest.In a terminal, type yo azuresfguest.
  2. Dê um nome à aplicação.Name your application.
  3. Nomeie o serviço e forneça os detalhes, incluindo o caminho do executável e os parâmetros com os quais ele deve ser invocado.Name your service, and provide the details including path of the executable and the parameters it must be invoked with.

O Yeoman cria um pacote de aplicativos com os arquivos de manifesto e de aplicativo apropriados, juntamente com os scripts de instalação e desinstalação.Yeoman creates an application package with the appropriate application and manifest files along with install and uninstall scripts.

Empacotar e implantar manualmente um executável existenteManually package and deploy an existing executable

O processo de empacotamento manual de um executável convidado é baseado nas seguintes etapas gerais:The process of manually packaging a guest executable is based on the following general steps:

  1. Crie a estrutura do diretório do pacote.Create the package directory structure.
  2. Adicione o código e os arquivos de configuração do aplicativo.Add the application's code and configuration files.
  3. Edite o arquivo de manifesto do serviço.Edit the service manifest file.
  4. Edite o arquivo de manifesto do aplicativo.Edit the application manifest file.

Criar a estrutura do diretório do pacoteCreate the package directory structure

Você pode começar criando a estrutura de diretório, conforme descrito em empacotar um aplicativo de Service Fabric do Azure.You can start by creating the directory structure, as described in Package an Azure Service Fabric App.

Adicionar o código e os arquivos de configuração do aplicativoAdd the application's code and configuration files

Depois de criar a estrutura de diretório, você pode adicionar o código do aplicativo e os arquivos de configuração nos diretórios de código e configuração.After you have created the directory structure, you can add the application's code and configuration files under the code and config directories. Você também pode criar diretórios ou subdiretórios adicionais nos diretórios de código ou configuração.You can also create additional directories or subdirectories under the code or config directories.

Service Fabric faz um xcopy do conteúdo do diretório raiz do aplicativo, portanto, não há nenhuma estrutura predefinida a ser usada além de criar dois diretórios principais, código e configurações.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. (Você pode escolher nomes diferentes, se desejar.(You can pick different names if you want. Mais detalhes estão na próxima seção.)More details are in the next section.)

Nota

Certifique-se de incluir todos os arquivos e dependências de que o aplicativo precisa.Make sure that you include all the files and dependencies that the application needs. Service Fabric copia o conteúdo do pacote de aplicativos em todos os nós no cluster em que os serviços do aplicativo serão implantados.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. O pacote deve conter todo o código que o aplicativo precisa para ser executado.The package should contain all the code that the application needs to run. Não presuma que as dependências já estejam instaladas.Do not assume that the dependencies are already installed.

Editar o arquivo de manifesto do serviçoEdit the service manifest file

A próxima etapa é editar o arquivo de manifesto do serviço para incluir as seguintes informações:The next step is to edit the service manifest file to include the following information:

  • O nome do tipo de serviço.The name of the service type. Essa é uma ID que Service Fabric usa para identificar um serviço.This is an ID that Service Fabric uses to identify a service.
  • O comando a ser usado para iniciar o aplicativo (ExeHost).The command to use to launch the application (ExeHost).
  • Qualquer script que precise ser executado para configurar o aplicativo (SetupEntrypoint).Any script that needs to be run to set up the application (SetupEntrypoint).

Veja a seguir um exemplo de um ServiceManifest.xml arquivo: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>

As seções a seguir passam pelas diferentes partes do arquivo que você precisa atualizar.The following sections go over the different parts of the file that you need to update.

Atualizar os tipos de atualizaçõesUpdate ServiceTypes

<ServiceTypes>
  <StatelessServiceType ServiceTypeName="NodeApp" UseImplicitHost="true" />
</ServiceTypes>
  • Você pode escolher qualquer nome que desejar ServiceTypeName.You can pick any name that you want for ServiceTypeName. O valor é usado no ApplicationManifest.xml arquivo para identificar o serviço.The value is used in the ApplicationManifest.xml file to identify the service.
  • Especifique UseImplicitHost="true".Specify UseImplicitHost="true". Esse atributo informa Service Fabric que o serviço é baseado em um aplicativo independente, de modo que todos os Service Fabric precisam fazê-lo para iniciá-lo como um processo e monitorar sua integridade.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.

Atualizar CodePackageUpdate CodePackage

O elemento CodePackage especifica o local (e a versão) do código do serviço.The CodePackage element specifies the location (and version) of the service's code.

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

O Name elemento é usado para especificar o nome do diretório no pacote de aplicativos que contém o código do serviço.The Name element is used to specify the name of the directory in the application package that contains the service's code. CodePackagetambém tem o version atributo.CodePackage also has the version attribute. Isso pode ser usado para especificar a versão do código e também pode ser usado para atualizar o código do serviço usando a infraestrutura de gerenciamento do ciclo de vida do aplicativo em 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.

Opcional: Atualizar SetupEntrypointOptional: Update SetupEntrypoint

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

O elemento SetupEntryPoint é usado para especificar qualquer executável ou arquivo em lotes que deve ser executado antes do código do serviço ser iniciado.The SetupEntryPoint element is used to specify any executable or batch file that should be executed before the service's code is launched. É uma etapa opcional, portanto, não precisa ser incluída se não houver nenhuma inicialização necessária.It is an optional step, so it does not need to be included if there is no initialization required. O SetupEntryPoint é executado toda vez que o serviço é reiniciado.The SetupEntryPoint is executed every time the service is restarted.

Há apenas um SetupEntryPoint, portanto, os scripts de instalação precisam ser agrupados em um único arquivo em lotes se a instalação do aplicativo exigir vários scripts.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. O SetupEntryPoint pode executar qualquer tipo de arquivo: arquivos executáveis, arquivos em lotes e cmdlets do PowerShell.The SetupEntryPoint can execute any type of file: executable files, batch files, and PowerShell cmdlets. Para obter mais detalhes, consulte Configurar SetupEntryPoint.For more details, see Configure SetupEntryPoint.

No exemplo anterior, o SetupEntryPoint executa um arquivo em lotes chamado LaunchConfig.cmd que está localizado scripts no subdiretório do diretório do código (supondo que o elemento WorkingFolder esteja definido como 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).

Atualizar ponto de entradaUpdate EntryPoint

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

O EntryPoint elemento no arquivo de manifesto do serviço é usado para especificar como iniciar o serviço.The EntryPoint element in the service manifest file is used to specify how to launch the service.

O ExeHost elemento Especifica o executável (e os argumentos) que devem ser usados para iniciar o serviço.The ExeHost element specifies the executable (and arguments) that should be used to launch the service. Opcionalmente, você pode adicionar IsExternalExecutable="true" o atributo ExeHost a para indicar que o programa é um executável externo fora do pacote de códigos.You can optionally add the IsExternalExecutable="true" attribute to ExeHost to indicate that the program is an external executable outside of the code package. Por exemplo, <ExeHost IsExternalExecutable="true">.For example, <ExeHost IsExternalExecutable="true">.

  • ProgramEspecifica o nome do executável que deve iniciar o serviço.Program specifies the name of the executable that should start the service.
  • ArgumentsEspecifica os argumentos que devem ser passados para o executável.Arguments specifies the arguments that should be passed to the executable. Pode ser uma lista de parâmetros com argumentos.It can be a list of parameters with arguments.
  • WorkingFolderEspecifica o diretório de trabalho para o processo que será iniciado.WorkingFolder specifies the working directory for the process that is going to be started. Você pode especificar três valores:You can specify three values:
    • CodeBaseEspecifica que o diretório de trabalho será definido para o diretório de código no pacote de aplicativos (Code diretório na estrutura de arquivos anterior).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).
    • CodePackageEspecifica que o diretório de trabalho será definido como a raiz do pacote de aplicativos (GuestService1Pkg na estrutura de arquivo anterior).CodePackage specifies that the working directory is going to be set to the root of the application package (GuestService1Pkg in the preceding file structure).
      • WorkEspecifica que os arquivos são colocados em um subdiretório chamado trabalho.Work specifies that the files are placed in a subdirectory called work.

O WorkingFolder é útil para definir o diretório de trabalho correto para que os caminhos relativos possam ser usados pelo aplicativo ou scripts de inicialização.The WorkingFolder is useful to set the correct working directory so that relative paths can be used by either the application or initialization scripts.

Atualizar pontos de extremidade e registrar com Serviço de Nomenclatura para comunicaçãoUpdate Endpoints and register with Naming Service for communication

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

No exemplo anterior, o Endpoint elemento Especifica os pontos de extremidade que o aplicativo pode escutar.In the preceding example, the Endpoint element specifies the endpoints that the application can listen on. Neste exemplo, o aplicativo node. js escuta no http na porta 3000.In this example, the Node.js application listens on http on port 3000.

Além disso, você pode pedir Service Fabric para publicar esse ponto de extremidade no Serviço de Nomenclatura para que outros serviços possam descobrir o endereço do ponto de extremidade para esse serviço.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. Isso permite que você seja capaz de se comunicar entre os serviços que são executáveis convidados.This enables you to be able to communicate between services that are guest executables. O endereço do ponto de extremidade publicado está UriScheme://IPAddressOrFQDN:Port/PathSuffixno formato.The published endpoint address is of the form UriScheme://IPAddressOrFQDN:Port/PathSuffix. UriSchemee PathSuffix são atributos opcionais.UriScheme and PathSuffix are optional attributes. IPAddressOrFQDNé o endereço IP ou o nome de domínio totalmente qualificado do nó no qual esse executável é colocado e é calculado para você.IPAddressOrFQDN is the IP address or fully qualified domain name of the node this executable gets placed on, and it is calculated for you.

No exemplo a seguir, depois que o serviço for implantado, em Service Fabric Explorer você verá um http://10.1.4.92:3000/myapp/ ponto de extremidade semelhante ao publicado para a instância de serviço.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. Ou, se esse for um computador local, você http://localhost:3000/myapp/verá.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>

Você pode usar esses endereços com proxy reverso para se comunicar entre os serviços.You can use these addresses with reverse proxy to communicate between services.

Editar o arquivo de manifesto do aplicativoEdit the application manifest file

Depois de configurar o Servicemanifest.xml arquivo, você precisa fazer algumas alterações ApplicationManifest.xml no arquivo para garantir que o tipo de serviço e o nome corretos sejam usados.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 No elemento, você pode especificar um ou mais serviços que deseja incluir no aplicativo.In the ServiceManifestImport element, you can specify one or more services that you want to include in the app. Os serviços são referenciados com ServiceManifestName, que especifica o nome do diretório onde o ServiceManifest.xml arquivo está localizado.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>

Configurar o registro em logSet up logging

Para executáveis convidados, é útil ser capaz de ver os logs do console para descobrir se os scripts de configuração e de aplicativo mostram erros.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. O redirecionamento de console pode ser configurado ServiceManifest.xml no arquivo usando ConsoleRedirection o elemento.Console redirection can be configured in the ServiceManifest.xml file using the ConsoleRedirection element.

Aviso

Nunca use a política de redirecionamento de console em um aplicativo implantado em produção porque isso pode afetar o failover do aplicativo.Never use the console redirection policy in an application that is deployed in production because this can affect the application failover. Use isso apenas para fins de depuração e desenvolvimento locais.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>

ConsoleRedirectionpode ser usado para redirecionar a saída do console (stdout e stderr) para um diretório de trabalho.ConsoleRedirection can be used to redirect console output (both stdout and stderr) to a working directory. Isso fornece a capacidade de verificar se não há erros durante a instalação ou execução do aplicativo no Cluster 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.

FileRetentionCountDetermina quantos arquivos são salvos no diretório de trabalho.FileRetentionCount determines how many files are saved in the working directory. Um valor de 5, por exemplo, significa que os arquivos de log das cinco execuções anteriores são armazenados no diretório de trabalho.A value of 5, for example, means that the log files for the previous five executions are stored in the working directory.

FileMaxSizeInKbEspecifica o tamanho máximo dos arquivos de log.FileMaxSizeInKb specifies the maximum size of the log files.

Os arquivos de log são salvos em um dos diretórios de trabalho do serviço.Log files are saved in one of the service's working directories. Para determinar onde os arquivos estão localizados, use Service Fabric Explorer para determinar em qual nó o serviço está sendo executado e qual diretório de trabalho está sendo usado.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. Esse processo é abordado posteriormente neste artigo.This process is covered later in this article.

ImplementaçãoDeployment

A última etapa é implantar seu aplicativo.The last step is to deploy your application. O script do PowerShell a seguir mostra como implantar seu aplicativo no cluster de desenvolvimento local e iniciar um novo serviço de 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

Dica

Compacte o pacote antes de copiar para o repositório de imagens se o pacote for grande ou tiver muitos arquivos.Compress the package before copying to the image store if the package is large or has many files. Leia mais aqui.Read more here.

Um serviço de Service Fabric pode ser implantado em várias "configurações".A Service Fabric service can be deployed in various "configurations." Por exemplo, ele pode ser implantado como uma ou várias instâncias ou pode ser implantado de forma que haja uma instância do serviço em cada nó do cluster de Service Fabric.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.

O InstanceCount parâmetroNew-ServiceFabricService do cmdlet é usado para especificar quantas instâncias do serviço devem ser iniciadas no Cluster 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. Você pode definir o InstanceCount valor, dependendo do tipo de aplicativo que você está implantando.You can set the InstanceCount value, depending on the type of application that you are deploying. Os dois cenários mais comuns são:The two most common scenarios are:

  • InstanceCount = "1".InstanceCount = "1". Nesse caso, apenas uma instância do serviço é implantada no cluster.In this case, only one instance of the service is deployed in the cluster. O Agendador de Service Fabric determina em qual nó o serviço será implantado.Service Fabric's scheduler determines which node the service is going to be deployed on.
  • InstanceCount ="-1".InstanceCount ="-1". Nesse caso, uma instância do serviço é implantada em cada nó no Cluster Service Fabric.In this case, one instance of the service is deployed on every node in the Service Fabric cluster. O resultado é ter uma (e apenas uma) instância do serviço para cada nó no cluster.The result is having one (and only one) instance of the service for each node in the cluster.

Essa é uma configuração útil para aplicativos de front-end (por exemplo, um ponto de extremidade REST), porque os aplicativos cliente precisam "se conectar" a qualquer um dos nós no cluster para usar o ponto de extremidade.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. Essa configuração também pode ser usada quando, por exemplo, todos os nós do cluster de Service Fabric estão conectados a um balanceador de carga.This configuration can also be used when, for example, all nodes of the Service Fabric cluster are connected to a load balancer. O tráfego do cliente pode então ser distribuído entre o serviço em execução em todos os nós no cluster.Client traffic can then be distributed across the service that is running on all nodes in the cluster.

Verificar o aplicativo em execuçãoCheck your running application

Em Service Fabric Explorer, identifique o nó em que o serviço está em execução.In Service Fabric Explorer, identify the node where the service is running. Neste exemplo, ele é executado em Node1:In this example, it runs on Node1:

Nó em que o serviço está em execução

Se você navegar até o nó e navegar até o aplicativo, verá as informações essenciais do nó, incluindo seu local no disco.If you navigate to the node and browse to the application, you see the essential node information, including its location on disk.

Local no disco

Se você navegar até o diretório usando Gerenciador de Servidores, poderá encontrar o diretório de trabalho e a pasta de log do serviço, conforme mostrado na seguinte captura de tela: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:

Local do log

Passos seguintesNext steps

Neste artigo, você aprendeu a empacotar um executável convidado e implantá-lo no Service Fabric.In this article, you have learned how to package a guest executable and deploy it to Service Fabric. Consulte os artigos a seguir para obter informações e tarefas relacionadas.See the following articles for related information and tasks.