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 Fabric.exe é 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