Share via


Exemplos de manifesto e aplicação e serviço do Reliable Services

A seguir estão exemplos dos manifestos de aplicativo e serviço para um aplicativo do Service Fabric com um front-end da Web ASP.NET Core e um back-end com monitoração de estado. O objetivo destes exemplos é mostrar quais configurações estão disponíveis e como usá-las. Esses manifestos de aplicativo e serviço são baseados nos manifestos de início rápido do Service Fabric .NET.

Os seguintes recursos são mostrados:

Manifesto Funcionalidades
Manifesto da aplicação governança de recursos, executar um serviço como uma conta de administrador local, aplicar uma política padrão a todos os pacotes de código de serviço, criar entidades de usuário e grupo, compartilhar um pacote de dados entre instâncias de serviço, substituir pontos de extremidade de serviço
Manifesto do serviço FrontEndService Executar um script na inicialização do serviço, definir um ponto de extremidade HTTPS
Manifesto do serviço BackEndService Declarar um pacote de configuração, declarar um pacote de dados, configurar um ponto de extremidade

Consulte Elementos de manifesto do aplicativo, Elementos de manifesto do serviço VotingWeb e Elementos do manifesto do serviço VotingData para obter mais informações sobre elementos XML específicos.

Manifesto de aplicação

<?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="VotingType" ApplicationTypeVersion="1.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">
  <Parameters>
    <Parameter Name="VotingData_MinReplicaSetSize" DefaultValue="3" />
    <Parameter Name="VotingData_PartitionCount" DefaultValue="1" />
    <Parameter Name="VotingData_TargetReplicaSetSize" DefaultValue="3" />
    <Parameter Name="VotingWeb_InstanceCount" DefaultValue="-1" />
    <Parameter Name="CpuCores" DefaultValue="2" />
    <Parameter Name="Memory" DefaultValue="4084" />
    <Parameter Name="BlockIOWeight" DefaultValue="200" />
    <Parameter Name="MaximumIOBandwidth" DefaultValue="1024" />
    <Parameter Name="MemoryReservationInMB" DefaultValue="1024" />
    <Parameter Name="MemorySwapInMB" DefaultValue="4084"/>
    <Parameter Name="Port" DefaultValue="8081" />
    <Parameter Name="Protocol" DefaultValue="tcp" />
    <Parameter Name="Type" DefaultValue="internal" />
  </Parameters>
  <!-- Import the ServiceManifest from the ServicePackage. The ServiceManifestName and ServiceManifestVersion 
       should match the Name and Version attributes of the ServiceManifest element defined in the 
       ServiceManifest.xml file. -->
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="VotingDataPkg" ServiceManifestVersion="1.0.0" />
    <!-- Override endpoints declared in the service manifest. -->
    <ResourceOverrides>
      <Endpoints>
        <Endpoint Name="DataEndpoint" Port="[Port]" Protocol="[Protocol]" Type="[Type]" />
      </Endpoints>
    </ResourceOverrides>

    <!-- Policies to be applied to the imported service manifest. -->
    <Policies>
      
      <!-- Set resource governance at the service package level. -->
      <ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[Memory]"/>

      <!-- Set resource governance at the code package level. -->
      <ResourceGovernancePolicy CodePackageRef="Code" CpuPercent="10" MemoryInMB="[Memory]" BlockIOWeight="[BlockIOWeight]" 
                                MaximumIOBandwidth="[MaximumIOBandwidth]" MaximumIOps="[MaximumIOps]" MemoryReservationInMB="[MemoryReservationInMB]" 
                                MemorySwapInMB="[MemorySwapInMB]"/>

      <!-- Share the data package across multiple instances of the VotingData service-->
      <PackageSharingPolicy PackageRef="Data"/>

      <!-- Give read rights on the "DataEndpoint" endpoint to the Customer2 account.-->
      <SecurityAccessPolicy GrantRights="Read" PrincipalRef="Customer2" ResourceRef="DataEndpoint" ResourceType="Endpoint"/>         
    </Policies>
  </ServiceManifestImport>
  
  <!-- Import the ServiceManifest from the ServicePackage. The ServiceManifestName and ServiceManifestVersion 
       should match the Name and Version attributes of the ServiceManifest element defined in the 
       ServiceManifest.xml file. -->
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="VotingWebPkg" ServiceManifestVersion="1.0.0" />
    
    <!-- Policies to be applied to the imported service manifest. -->
    <Policies>
      <!-- Run the setup entry point (defined in the imported service manifest) as the SetupAdminUser account 
      (declared in the following Principals section). -->
      <RunAsPolicy CodePackageRef="Code" UserRef="SetupAdminUser" EntryPointType="Setup" />
      
    </Policies>

  </ServiceManifestImport>
  <DefaultServices>
    <!-- The section below creates instances of service types, when an instance of this 
         application type is created. You can also create one or more instances of service type using the 
         ServiceFabric PowerShell module.
         
         The attribute ServiceTypeName below must match the name defined in the imported ServiceManifest.xml file. -->
    <Service Name="VotingData">
      <StatefulService ServiceTypeName="VotingDataType" TargetReplicaSetSize="[VotingData_TargetReplicaSetSize]" MinReplicaSetSize="[VotingData_MinReplicaSetSize]">
        <UniformInt64Partition PartitionCount="[VotingData_PartitionCount]" LowKey="0" HighKey="25" />
      </StatefulService>
    </Service>
    <Service Name="VotingWeb" ServicePackageActivationMode="ExclusiveProcess">
      <StatelessService ServiceTypeName="VotingWebType" InstanceCount="[VotingWeb_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
  </DefaultServices>
  <!-- Define users and groups required to run the services and access resources.  Principals are used in the Policies section(s). -->
  <Principals>
    <!-- Declare a set of groups as security principals, which can be referenced in policies. Groups are useful if there are multiple users 
    for different service entry points and they need to have certain common privileges that are available at the group level. -->
    <Groups>
      <!-- Create a group that has administrator privileges. -->
      <Group Name="LocalAdminGroup">
        <Membership>
          <SystemGroup Name="Administrators" />
        </Membership>
      </Group>
    </Groups>
    <Users>
      <!-- Declare a user and add the user to the Administrators system group. The SetupAdminUser account is used to run the 
      setup entry point of the VotingWebPkg code package (described in the preceding Policies section).-->
      <User Name="SetupAdminUser">
        <MemberOf>
          <SystemGroup Name="Administrators" />
        </MemberOf>
      </User>
      <!-- Create a user. Local user accounts are created on the machines where the application is deployed. By default, these accounts 
      do not have the same names as those specified here. Instead, they are dynamically generated and have random passwords. -->
      <User Name="Customer1" >
        <MemberOf>
          <!-- Add the user to the local administrators group.-->
          <Group NameRef="LocalAdminGroup" />
        </MemberOf>
      </User>
      <!-- Create a user as a local user with the specified account name and password. Local user accounts are created on the machines 
      where the application is deployed. -->
      <User Name="Customer2" AccountType="LocalUser" AccountName="Customer1" Password="MyPassword">
        <MemberOf>
          <!-- Add the user to the local administrators group.-->
          <Group NameRef="LocalAdminGroup" />
        </MemberOf>
      </User>
      <!-- Create a user as NetworkService. -->
      <User Name="MyDefaultAccount" AccountType="NetworkService" />      
    </Users>
  </Principals>
  <!-- Policies applied at the application level. -->
  <Policies>
    <!-- Specify a default user account for all code packages that don’t have a specific RunAsPolicy defined in 
    the ServiceManifestImport section(s). -->
    <DefaultRunAsPolicy UserRef="MyDefaultAccount" />
    
  </Policies>
</ApplicationManifest>

VotingManifesto do serviço Web

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="VotingWebPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="https://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <!-- This is the name of your ServiceType. 
         This name must match the string used in RegisterServiceType call in Program.cs. -->
    <StatelessServiceType ServiceTypeName="VotingWebType" />
  </ServiceTypes>

  <!-- Code package is your service executable. -->
  <CodePackage Name="Code" Version="1.0.0">
    <!-- A privileged entry point that by default runs with the same credentials as Service Fabric (typically the NetworkService account) before 
    any other entry point. Use the setup entry point to set system environment variables, give the account running the service (NETWORK SERVICE, by default) 
    access to a certificate's private key, or perform other setup tasks. In the application manifest, you can change the security permissions to run the startup script 
    under a local system account or an administrator account.  -->
    <SetupEntryPoint>
      <ExeHost>
        <!-- The setup script to run. -->
        <Program>Setup.bat</Program>
        <!-- Pass arguments to the script when it runs.-->
        <Arguments>MyValue</Arguments>
        <!-- The working directory for the process in the code package on the node where the application is deployed. CodePackage sets the working directory to be 
        the root of the code package regardless of where the EXE is defined in the code package directory. This is where the processes can write the data. Writing data 
        in the code package or code base is not recommended as those folders could be shared between different application instances and may get deleted.-->
        <WorkingFolder>CodePackage</WorkingFolder>
        <!-- Warning! Do not use console redirection in a production application, only use it for local development and debugging. Redirects console output from the startup
        script to an output file in the application folder called "log" on the cluster node where the application is deployed and run. Also set the number of output files
        to retain and the maximum file size (in KB). -->
        <ConsoleRedirection FileRetentionCount="10" FileMaxSizeInKb="20480"/>
      </ExeHost>
    </SetupEntryPoint>
    <EntryPoint>
      <ExeHost>
        <Program>VotingWeb.exe</Program>
        <!-- The working directory for the process in the code package on the node where the application is deployed. CodePackage sets the working directory to be 
        the root of the code package regardless of where the EXE is defined in the code package directory. This is where the processes can write the data. Writing data 
        in the code package or code base is not recommended as those folders could be shared between different application instances and may get deleted.-->
        <WorkingFolder>CodePackage</WorkingFolder>
      </ExeHost>
    </EntryPoint>
  </CodePackage>

  <!-- Config package is the contents of the Config directory under PackageRoot that contains an 
       independently-updateable and versioned set of custom configuration settings for your service. -->
  <ConfigPackage Name="Config" Version="1.0.0" />

  <Resources>
    <Endpoints>
      <!-- Configure a HTTPS endpoint on port 443. This endpoint is used by the communication listener to obtain the port on which to 
           listen. Please note that if your service is partitioned, this port is shared with 
           replicas of different partitions that are placed in your code. -->
      <Endpoint Protocol="https" Name="EndpointHttps" Type="Input" Port="443" />
    </Endpoints>
  </Resources>
</ServiceManifest>

Manifesto do serviço VotingData

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="VotingDataPkg"
                 Version="1.0.0"
                 xmlns="http://schemas.microsoft.com/2011/01/fabric"
                 xmlns:xsd="https://www.w3.org/2001/XMLSchema"
                 xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">
  <ServiceTypes>
    <!-- This is the name of your ServiceType. 
         This name must match the string used in RegisterServiceType call in Program.cs. -->
    <StatefulServiceType ServiceTypeName="VotingDataType"  HasPersistedState="true" />
  </ServiceTypes>

  <!-- Code package is your service executable. -->
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ExeHost>
        <Program>VotingData.exe</Program>
        <!-- The working directory for the process in the code package on the node where the application is deployed. CodePackage sets the working directory to be 
        the root of the code package regardless of where the EXE is defined in the code package directory. This is where the processes can write the data. Writing data 
        in the code package or code base is not recommended as those folders could be shared between different application instances and may get deleted.-->
        <WorkingFolder>CodePackage</WorkingFolder>
      </ExeHost>
    </EntryPoint>
  </CodePackage>

  <!-- Declares a folder, named by the Name attribute, under PackageRoot that contains a Settings.xml file. This file contains sections of user-defined, 
  key-value pair settings that the process can read back at run time. During an upgrade, if only the ConfigPackage version has changed, 
  then the running process is not restarted. Instead, a callback notifies the process that configuration settings have changed so they can be reloaded dynamically. -->
  <ConfigPackage Name="Config" Version="1.0.0" />
  
  <!-- Declares a folder, named by the Name attribute, under PackageRoot which contains static data files to be consumed by the process at run time. -->
  <DataPackage Name="Data" Version="1.0.0"/>

  <Resources>
    <Endpoints>
      <!-- Define an internal (used for intra-application communication) TCP endpoint. Since no port is specified, one is created and assigned dynamically
           to the service.-->
      <Endpoint Name="DataEndpoint" Protocol="tcp" Type="Internal" />
    </Endpoints>
  </Resources>

</ServiceManifest>

Elementos do manifesto do aplicativo

Elemento ApplicationManifest

Descreve declarativamente o tipo e a versão do aplicativo. Um ou mais manifestos de serviço dos serviços constituintes são referenciados para compor um tipo de aplicativo. As definições de configuração dos serviços constituintes podem ser substituídas usando configurações de aplicativo parametrizadas. Serviços padrão, modelos de serviço, entidades de segurança, políticas, configuração de diagnóstico e certificados também podem ser declarados no nível do aplicativo. Para obter mais informações, consulte Elemento ApplicationManifest

Elemento Parâmetros

Declara os parâmetros que são usados neste manifesto do aplicativo. O valor desses parâmetros pode ser fornecido quando o aplicativo é instanciado e pode ser usado para substituir as definições de configuração do aplicativo ou serviço. Para obter mais informações, consulte Elemento de parâmetros

Elemento de parâmetro

Um parâmetro de aplicação a ser usado neste manifesto. O valor do parâmetro pode ser alterado durante a instanciação do aplicativo ou, se nenhum valor for fornecido, o valor padrão será usado. Para obter mais informações, consulte Elemento de parâmetro

Elemento ServiceManifestImport

Importa um manifesto de serviço criado pelo desenvolvedor do serviço. Um manifesto de serviço deve ser importado para cada serviço constituinte no aplicativo. Substituições de configuração e políticas podem ser declaradas para o manifesto de serviço. Para obter mais informações, consulte Elemento ServiceManifestImport

Elemento ServiceManifestRef

Importa o manifesto do serviço por referência. Atualmente, o arquivo de manifesto de serviço (ServiceManifest.xml) deve estar presente no pacote de compilação. Para obter mais informações, consulte Elemento ServiceManifestRef

Elemento ResourceOverrides

Especifica substituições de recursos para pontos de extremidade declarados em recursos de manifesto de serviço. Para obter mais informações, consulte Elemento ResourceOverrides

Elemento de pontos de extremidade

O(s) ponto(s) de extremidade a substituir. Para obter mais informações, consulte Elemento de pontos de extremidade

Elemento Endpoint

O ponto de extremidade, declarado no manifesto de serviço, a ser substituído. Para obter mais informações, consulte Elemento de ponto de extremidade

Elemento Políticas

Descreve as políticas (vinculação de ponto de extremidade, compartilhamento de pacotes, run-as e acesso de segurança) a serem aplicadas no manifesto de serviço importado. Para obter mais informações, consulte Elemento Políticas

Elemento ServicePackageResourceGovernancePolicy

Define a política de governança de recursos que é aplicada no nível de todo o pacote de serviços. Para obter mais informações, consulte Elemento ServicePackageResourceGovernancePolicy

Elemento ResourceGovernancePolicy

Especifica limites de recursos para um pacote de código. Para obter mais informações, consulte Elemento ResourceGovernancePolicy

Elemento PackageSharingPolicy

Indica se um código, configuração ou pacote de dados deve ser compartilhado entre instâncias de serviço do mesmo tipo de serviço. Para obter mais informações, consulte Elemento PackageSharingPolicy

Elemento SecurityAccessPolicy

Concede permissões de acesso a uma entidade de segurança em um recurso (como um ponto de extremidade) definido em um manifesto de serviço. Normalmente, é muito útil controlar e restringir o acesso de serviços a diferentes recursos, a fim de minimizar os riscos de segurança. Isso é especialmente importante quando o aplicativo é construído a partir de uma coleção de serviços de um mercado que são desenvolvidos por diferentes desenvolvedores. Para obter mais informações, consulte SecurityAccessPolicy Element

Elemento RunAsPolicy

Especifica o usuário local ou a conta do sistema local como um pacote de código de serviço será executado. As contas de domínio são suportadas em implantações do Windows Server onde o Microsoft Entra ID está disponível. Por padrão, os aplicativos são executados na conta na qual o processo .exe malha é executado. Os aplicativos também podem ser executados como outras contas, que devem ser declaradas na seção Principais. Se você aplicar uma política RunAs a um serviço e o manifesto do serviço declarar recursos de ponto de extremidade com o protocolo HTTP, você também deverá especificar uma SecurityAccessPolicy para garantir que as portas alocadas a esses pontos de extremidade estejam listadas corretamente para a conta de usuário RunAs na qual o serviço é executado. Para um ponto de extremidade HTTPS, você também precisa definir um EndpointBindingPolicy para indicar o nome do certificado a ser retornado ao cliente. Para obter mais informações, consulte Elemento RunAsPolicy

Elemento DefaultServices

Declara instâncias de serviço que são criadas automaticamente sempre que um aplicativo é instanciado em relação a esse tipo de aplicativo. Para obter mais informações, consulte Elemento DefaultServices

Elemento de serviço

Declara um serviço a ser criado automaticamente quando o aplicativo é instanciado. Para obter mais informações, consulte Elemento de serviço

Elemento StatefulService

Define um serviço com monitoração de estado. Para obter mais informações, consulte StatefulService Element

Elemento StatelessService

Define um serviço sem monitoração de estado. Para obter mais informações, consulte StatelessService Element

Elemento Principals

Descreve as entidades de segurança (usuários, grupos) necessárias para que este aplicativo execute serviços e recursos seguros. Os principais são referenciados nas seções de políticas. Para obter mais informações, consulte Elemento Principals

Elemento Groups

Declara um conjunto de grupos como entidades de segurança, que podem ser referenciados em políticas. Os grupos são úteis se houver vários usuários para diferentes pontos de entrada de serviço e eles precisarem ter certos privilégios comuns disponíveis no nível do grupo. Para obter mais informações, consulte Elemento Groups

Elemento de grupo

Declara um grupo como uma entidade de segurança, que pode ser referenciada em políticas. Para obter mais informações, consulte Elemento de grupo

Elemento de associação

Para obter mais informações, consulte Elemento de associação

Elemento SystemGroup

Para obter mais informações, consulte Elemento SystemGroup

Elemento Users

Declara um conjunto de usuários como entidades de segurança, que podem ser referenciadas em políticas. Para obter mais informações, consulte Elemento Users

Elemento do usuário

Declara um usuário como uma entidade de segurança, que pode ser referenciada em políticas. Para obter mais informações, consulte Elemento do usuário

Elemento MemberOf

Os usuários podem ser adicionados a qualquer grupo de membros existente, para que ele possa herdar todas as propriedades e configurações de segurança desse grupo de membros. O grupo de membros pode ser usado para proteger recursos externos que precisam ser acessados por diferentes serviços ou pelo mesmo serviço (em uma máquina diferente). Para obter mais informações, consulte MemberOf Element

Elemento SystemGroup

O grupo do sistema ao qual adicionar o usuário. O grupo do sistema deve ser definido na seção Grupos. Para obter mais informações, consulte Elemento SystemGroup

Elemento de grupo

O grupo ao qual adicionar o usuário. O grupo deve ser definido na seção Grupos. Para obter mais informações, consulte Elemento de grupo

Elemento Políticas

Descreve as políticas (coleta de logs, run-as padrão, integridade e acesso de segurança) a serem aplicadas no nível do aplicativo. Para obter mais informações, consulte Elemento Políticas

Elemento DefaultRunAsPolicy

Especifique uma conta de usuário padrão para todos os pacotes de código de serviço que não têm um RunAsPolicy específico definido na seção ServiceManifestImport. Para obter mais informações, consulte Elemento DefaultRunAsPolicy

VotingElementos de manifesto do serviço Web

Elemento ServiceManifest

Descreve declarativamente o tipo de serviço e a versão. Ele lista o código, a configuração e os pacotes de dados atualizáveis independentemente que, juntos, compõem um pacote de serviço para oferecer suporte a um ou mais tipos de serviço. Recursos, configurações de diagnóstico e metadados de serviço, como tipo de serviço, propriedades de integridade e métricas de balanceamento de carga, também são especificados. Para obter mais informações, consulte Elemento ServiceManifest

Elemento ServiceTypes

Define quais tipos de serviço são suportados por um CodePackage neste manifesto. Quando um serviço é instanciado em relação a um desses tipos de serviço, todos os pacotes de código declarados neste manifesto são ativados executando seus pontos de entrada. Os tipos de serviço são declarados no nível do manifesto e não no nível do pacote de código. Para obter mais informações, consulte Elemento ServiceTypes

Elemento StatelessServiceType

Descreve um tipo de serviço sem monitoração de estado. Para obter mais informações, consulte StatelessServiceType Element

Elemento CodePackage

Descreve um pacote de código que suporta um tipo de serviço definido. Quando um serviço é instanciado em relação a um desses tipos de serviço, todos os pacotes de código declarados neste manifesto são ativados executando seus pontos de entrada. Espera-se que os processos resultantes registrem os tipos de serviço suportados em tempo de execução. Quando há vários pacotes de código, todos eles são ativados sempre que o sistema procura qualquer um dos tipos de serviço declarados. Para obter mais informações, consulte CodePackage Element

Elemento SetupEntryPoint

Um ponto de entrada privilegiado que, por padrão, é executado com as mesmas credenciais do Service Fabric (normalmente a conta NETWORKSERVICE) antes de qualquer outro ponto de entrada. O executável especificado pelo EntryPoint é normalmente o host de serviço de longa execução. A presença de um ponto de entrada de configuração separado evita ter que executar o host de serviço com altos privilégios por longos períodos de tempo. Para obter mais informações, consulte Elemento SetupEntryPoint

Elemento ExeHost

Para obter mais informações, consulte Elemento ExeHost

Elemento do programa

O nome do executável. Por exemplo, "MySetup.bat" ou "MyServiceHost.exe". Para obter mais informações, consulte Elemento do programa

Elemento Argumentos

Para obter mais informações, consulte Elemento Argumentos

Elemento WorkingFolder

O diretório de trabalho para o processo no pacote de código no nó do cluster onde o aplicativo é implantado. Você pode especificar três valores: Work (o padrão), CodePackage ou CodeBase. CodeBase especifica que o diretório de trabalho é definido para o diretório no qual o EXE é definido no pacote de código. CodePackage define o diretório de trabalho para ser a raiz do pacote de código, independentemente de onde o EXE é definido no diretório do pacote de código. O trabalho define o diretório de trabalho como uma pasta exclusiva criada no nó. Esta pasta é a mesma para toda a instância do aplicativo. Por padrão, o diretório de trabalho de todos os processos no aplicativo é definido como a pasta de trabalho do aplicativo. É aqui que os processos podem gravar os dados. A gravação de dados no pacote de código ou na base de código não é recomendada, pois essas pastas podem ser compartilhadas entre diferentes instâncias do aplicativo e podem ser excluídas. Para obter mais informações, consulte Elemento WorkingFolder

Elemento ConsoleRedirection

Aviso

Não use o redirecionamento de console em um aplicativo de produção, use-o apenas para desenvolvimento local e depuração. Redireciona a saída do console do script de inicialização para um arquivo de saída na pasta do aplicativo chamado "log" no nó do cluster onde o aplicativo é implantado e executado. Para obter mais informações, consulte Elemento ConsoleRedirection

Elemento EntryPoint

O executável especificado pelo EntryPoint é normalmente o host de serviço de longa execução. A presença de um ponto de entrada de configuração separado evita ter que executar o host de serviço com altos privilégios por longos períodos de tempo. O executável especificado por EntryPoint é executado depois que SetupEntryPoint é encerrado com êxito. O processo resultante é monitorado e reiniciado (começando novamente com SetupEntryPoint) se ele terminar ou falhar. Para obter mais informações, consulte Elemento EntryPoint

Elemento ExeHost

Para obter mais informações, consulte Elemento ExeHost

Elemento ConfigPackage

Declara uma pasta, nomeada pelo atributo Name, em PackageRoot que contém um arquivo Settings.xml. Esse arquivo contém seções de configurações de par chave-valor definidas pelo usuário que o processo pode ler de volta em tempo de execução. Durante uma atualização, se apenas a versão do ConfigPackage tiver sido alterada, o processo em execução não será reiniciado. Em vez disso, um retorno de chamada notifica o processo de que as definições de configuração foram alteradas para que possam ser recarregadas dinamicamente. Para obter mais informações, consulte ConfigPackage Element

Elemento Recursos

Descreve os recursos usados por esse serviço, que podem ser declarados sem modificar o código compilado e alterados quando o serviço é implantado. O acesso a esses recursos é controlado por meio das seções Entidades e Políticas do manifesto do aplicativo. Para obter mais informações, consulte Elemento Recursos

Elemento de pontos de extremidade

Define pontos de extremidade para o serviço. Para obter mais informações, consulte Elemento de pontos de extremidade

Elemento Endpoint

O ponto de extremidade, declarado no manifesto de serviço, a ser substituído. Para obter mais informações, consulte Elemento de ponto de extremidade

Elementos do manifesto do serviço VotingData

Elemento ServiceManifest

Descreve declarativamente o tipo de serviço e a versão. Ele lista o código, a configuração e os pacotes de dados atualizáveis independentemente que, juntos, compõem um pacote de serviço para oferecer suporte a um ou mais tipos de serviço. Recursos, configurações de diagnóstico e metadados de serviço, como tipo de serviço, propriedades de integridade e métricas de balanceamento de carga, também são especificados. Para obter mais informações, consulte Elemento ServiceManifest

Elemento ServiceTypes

Define quais tipos de serviço são suportados por um CodePackage neste manifesto. Quando um serviço é instanciado em relação a um desses tipos de serviço, todos os pacotes de código declarados neste manifesto são ativados executando seus pontos de entrada. Os tipos de serviço são declarados no nível do manifesto e não no nível do pacote de código. Para obter mais informações, consulte Elemento ServiceTypes

Elemento StatefulServiceType

Descreve um tipo de serviço com monitoração de estado. Para obter mais informações, consulte StatefulServiceType Element

Elemento CodePackage

Descreve um pacote de código que suporta um tipo de serviço definido. Quando um serviço é instanciado em relação a um desses tipos de serviço, todos os pacotes de código declarados neste manifesto são ativados executando seus pontos de entrada. Espera-se que os processos resultantes registrem os tipos de serviço suportados em tempo de execução. Quando há vários pacotes de código, todos eles são ativados sempre que o sistema procura qualquer um dos tipos de serviço declarados. Para obter mais informações, consulte CodePackage Element

Elemento EntryPoint

O executável especificado pelo EntryPoint é normalmente o host de serviço de longa execução. A presença de um ponto de entrada de configuração separado evita ter que executar o host de serviço com altos privilégios por longos períodos de tempo. O executável especificado por EntryPoint é executado depois que SetupEntryPoint é encerrado com êxito. O processo resultante é monitorado e reiniciado (começando novamente com SetupEntryPoint) se ele terminar ou falhar. Para obter mais informações, consulte Elemento EntryPoint

Elemento ExeHost

Para obter mais informações, consulte Elemento ExeHost

Elemento do programa

O nome do executável. Por exemplo, "MySetup.bat" ou "MyServiceHost.exe". Para obter mais informações, consulte Elemento do programa

Elemento WorkingFolder

O diretório de trabalho para o processo no pacote de código no nó do cluster onde o aplicativo é implantado. Você pode especificar três valores: Work (o padrão), CodePackage ou CodeBase. CodeBase especifica que o diretório de trabalho é definido para o diretório no qual o EXE é definido no pacote de código. CodePackage define o diretório de trabalho para ser a raiz do pacote de código, independentemente de onde o EXE é definido no diretório do pacote de código. O trabalho define o diretório de trabalho como uma pasta exclusiva criada no nó. Esta pasta é a mesma para toda a instância do aplicativo. Por padrão, o diretório de trabalho de todos os processos no aplicativo é definido como a pasta de trabalho do aplicativo. É aqui que os processos podem gravar os dados. A gravação de dados no pacote de código ou na base de código não é recomendada, pois essas pastas podem ser compartilhadas entre diferentes instâncias do aplicativo e podem ser excluídas. Para obter mais informações, consulte Elemento WorkingFolder

Elemento ConfigPackage

Declara uma pasta, nomeada pelo atributo Name, em PackageRoot que contém um arquivo Settings.xml. Esse arquivo contém seções de configurações de par chave-valor definidas pelo usuário que o processo pode ler de volta em tempo de execução. Durante uma atualização, se apenas a versão do ConfigPackage tiver sido alterada, o processo em execução não será reiniciado. Em vez disso, um retorno de chamada notifica o processo de que as definições de configuração foram alteradas para que possam ser recarregadas dinamicamente. Para obter mais informações, consulte ConfigPackage Element

Elemento DataPackage

Declara uma pasta, nomeada pelo atributo Name, em PackageRoot que contém arquivos de dados estáticos a serem consumidos pelo processo em tempo de execução. O Service Fabric reciclará todos os EXEs e DLLHOSTs especificados no host e nos pacotes de suporte quando qualquer um dos pacotes de dados listados no manifesto de serviço for atualizado. Para obter mais informações, consulte DataPackage Element

Elemento Recursos

Descreve os recursos usados por esse serviço, que podem ser declarados sem modificar o código compilado e alterados quando o serviço é implantado. O acesso a esses recursos é controlado por meio das seções Entidades e Políticas do manifesto do aplicativo. Para obter mais informações, consulte Elemento Recursos

Elemento de pontos de extremidade

Define pontos de extremidade para o serviço. Para obter mais informações, consulte Elemento de pontos de extremidade

Elemento Endpoint

O ponto de extremidade, declarado no manifesto de serviço, a ser substituído. Para obter mais informações, consulte Elemento de ponto de extremidade