Exemplos de aplicativo de Reliable Services e manifesto do serviço
A seguir estão exemplos dos manifestos de aplicativo e serviço para um aplicativo do Service Fabric com um front-end Web do ASP.NET Core e um back-end com estado. O objetivo desses exemplos é mostrar quais configurações estão disponíveis e como usá-las. Esses manifestos de aplicativo e serviços se baseiam em manifestos Início Rápido do Service Fabric .NET.
Os seguintes recursos são mostrados:
Manifest | Recursos |
---|---|
Manifesto do aplicativo | governança de recursos, executar um serviço como uma conta do 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 |
Veja Elementos do manifesto de aplicativo, Elementos de manifesto de serviço VotingWeb e Elementos de manifesto de serviço VotingData para obter mais informações sobre elementos específicos de XML.
Manifesto do aplicativo
<?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>
Manifesto do serviço VotingWeb
<?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 de aplicativo e a versão. Um ou mais manifestos de serviço dos serviços membros são referenciados para compor um tipo de aplicativo. As definições de configuração dos serviços membros podem ser substituídas usando configurações do aplicativo com parâmetros. 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, confira Elemento ApplicationManifest
Elemento Parameters
Declara os parâmetros que são usados no 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 serviço ou aplicativo. Para obter mais informações, confira Elemento Parameters
Elemento Parameter
Um parâmetro de aplicativo a ser usado no 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, confira Elemento Parameter
ServiceManifestImport
Importa um manifesto do serviço criado pelo desenvolvedor do serviço. Um manifesto do serviço deve ser importado para cada serviço membro do aplicativo. As substituições e políticas de configuração podem ser declaradas para o manifesto de serviço. Para obter mais informações, confira Elemento ServiceManifestImport
Elemento ServiceManifestRef
Importa o manifesto do serviço por referência. Atualmente, o arquivo de manifesto do serviço (ServiceManifest.xml) deve estar presente no pacote da build. Para obter mais informações, confira Elemento ServiceManifestRef
Elemento ResourceOverrides
Especifica substituições de recurso para pontos de extremidade declarados em recursos do manifesto do serviço. Para obter mais informações, veja Elemento ResourceOverrides
Elemento Endpoints
Os pontos de extremidade a substituir. Para obter mais informações, confira Elemento Endpoints
Elemento Endpoint
O ponto de extremidade, declarado no manifesto do serviço, a ser substituído. Para obter mais informações, confira Elemento Endpoint
Elemento Policies
Descreve as políticas (associação de ponto de extremidade, compartilhamento de pacotes, executar como e acesso de segurança) a serem aplicadas no manifesto do serviço importado. Para obter mais informações, confira Elemento Policies
Elemento ServicePackageResourceGovernancePolicy
Define a política de controle de recursos que é aplicada no nível de todo o pacote de serviço. Para obter mais informações, confira Elemento ServicePackageResourceGovernancePolicy
Elemento ResourceGovernancePolicy
Especifica limites de recurso para codepackage. Para obter mais informações, confira Elemento ResourceGovernancePolicy
Elemento PackageSharingPolicy
Indica se um pacote de códigos, configurações ou dados deve ser compartilhado entre instâncias de serviço do mesmo tipo de serviço. Para obter mais informações, veja Elemento PackageSharingPolicy
Elemento SecurityAccessPolicy
Concede permissões de acesso a uma entidade em um recurso (como um ponto de extremidade) definido em um manifesto do serviço. Normalmente, é muito útil controlar e restringir o acesso dos serviços para recursos diferentes a fim de minimizar riscos de segurança. Isso é especialmente importante quando o aplicativo é criado a partir de uma coleção de serviços de um marketplace que são criados por desenvolvedores diferentes. Para obter mais informações, veja Elemento SecurityAccessPolicy
Elemento RunAsPolicy
Especifica o usuário local ou a conta do sistema local usado por um pacote de código de serviço para execução. Há suporte para contas de domínio em implantações do Windows Server em que o Microsoft Entra ID está disponível. Por padrão, os aplicativos são executados na conta sob a qual o processo Fabric.exe está sendo executado. Os aplicativos também podem ser executados como outras contas, que devem ser declaradas na seção Entidades de segurança. 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, será necessário também especificar uma SecurityAccessPolicy para assegurar que as portas alocadas a esses pontos de extremidade sejam corretamente listadas no controle de acesso 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 para retornar ao cliente. Para obter mais informações, veja Elemento RunAsPolicy
Elemento DefaultServices
Declara as 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, confira Elemento DefaultServices
Elemento Service
Declara a criação automática de um serviço quando o aplicativo é instanciado. Para obter mais informações, confira Elemento Service
Elemento StatefulService
Define um serviço com estado. Para obter mais informações, veja Elemento StatefulService
Elemento StatelessService
Define um serviço sem estado. Para obter mais informações, confira Elemento StatelessService
Elemento Principals
Descreve as entidades de segurança (usuários, grupos) necessárias para o aplicativo executar serviços e recursos de segurança. As entidades de segurança são referenciadas nas seções de políticas. Para obter mais informações, veja Elemento Principal
Elemento Groups
Declara um conjunto de grupos como entidades de segurança que podem ser referenciadas em políticas. Grupos serão úteis se houver vários usuários para pontos de entrada de serviço diferentes e eles precisarem de privilégios comuns disponíveis no nível do grupo. Para obter mais informações, veja Elemento Groups
Elemento Group
Declara um grupo como uma entidade de segurança que pode ser referenciada em políticas. Para obter mais informações, veja Elemento Group
Elemento Membership
Para obter mais informações, veja Elemento Membership
Elemento SystemGroup
Para obter mais informações, veja 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, veja Elemento Users
Elemento User
Declara um usuário como uma entidade de segurança que pode ser referenciada em políticas. Para obter mais informações, veja Elemento User
Elemento MemberOf
Os usuários podem ser adicionados a um grupo de associação existente, para que possam herdar todas as propriedades e configurações de segurança de tal grupo de associação. O grupo de associação pode ser usado para proteger os recursos externos que precisam ser acessados por diferentes serviços ou o mesmo serviço (em um computador diferente). Para obter mais informações, veja Elemento MemberOf
Elemento SystemGroup
O grupo do sistema ao qual adicionar o usuário. O grupo do sistema deve ser definido na seção Groups. Para obter mais informações, veja Elemento SystemGroup
Elemento Group
O grupo ao qual adicionar o usuário. O grupo deve ser definido na seção Groups. Para obter mais informações, veja Elemento Group
Elemento Policies
Descreve as políticas (coleta de log, executar como padrão, integridade e acesso de segurança) a serem aplicadas no nível do aplicativo. Para obter mais informações, confira Elemento Policies
Elemento DefaultRunAsPolicy
Especifique uma conta de usuário padrão para todos os pacotes de código de serviço que não tenham um RunAsPolicy específico definido na seção ServiceManifestImport. Para obter mais informações, veja Elemento DefaultRunAsPolicy
Elementos de manifesto de serviço VotingWeb
Elemento ServiceManifest
Descreve declarativamente o tipo de serviço e a versão. Ele lista o código que pode ser atualizado independentemente, a configuração e os pacotes de código que compõem um pacote de serviço para dar suporte a um ou mais tipos de serviço. Recursos, configurações de diagnóstico e metadados de serviço, como o tipo de serviço, as propriedades de integridade e as métricas de balanceamento de carga, também são especificados. Para obter mais informações, confira Elemento ServiceManifest
Elemento ServiceTypes
Define os tipos de serviço com suporte por um CodePackage no manifesto. Quando um serviço é instanciado em relação a um desses tipos de serviço, todos os pacotes de código declarados nesse manifesto são ativados com a execução de 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, confira Elemento ServiceTypes
Elemento StatelessServiceType
Descreve um tipo de serviço sem estado. Para obter mais informações, confira Elemento StatelessServiceType
Elemento CodePackage
Descreve um pacote de código que dá suporte a 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 nesse manifesto são ativados com a execução de seus pontos de entrada. Os processos resultantes devem registrar os tipos de serviço com suporte no tempo de execução. Quando há vários pacotes de código, eles serão todos ativados sempre que o sistema procurar por qualquer um dos tipos de serviço declarados. Para obter mais informações, confira Elemento CodePackage
Elemento SetupEntryPoint
Um ponto de entrada privilegiado que por padrão é executado com as mesmas credenciais do que o 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 duração. A presença de um ponto de entrada de instalação separado evita a necessidade de executar o host de serviço com altos privilégios por longos períodos de tempo. Para obter mais informações, veja Elemento SetupEntryPoint
Elemento ExeHost
Para obter mais informações, veja Elemento ExeHost
Elemento Program
O nome do executável. Por exemplo, "MySetup.bat" ou "MyServiceHost.exe". Para obter mais informações, veja elemento de programa
Elemento Arguments
Para obter mais informações, veja Elemento Arguments
Elemento WorkingFolder
O diretório de trabalho para o processo no pacote de códigos no nó de cluster em que o aplicativo é implantado. Você pode especificar três valores: Trabalho (o padrão), CodePackage ou CodeBase. CodeBase especifica que o diretório de trabalho está 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ódigos, independentemente do local em que o EXE é definido no diretório do pacote de códigos. Trabalho define o diretório de trabalho para uma pasta exclusiva criada no nó. Essa 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 para a pasta de trabalho do aplicativo. Esse é o local em que os processos podem gravar os dados. Não é recomendável gravar dados no pacote de códigos ou base de código, uma vez que essas pastas podem ser compartilhadas entre instâncias diferentes do aplicativo e ser excluídas. Para obter mais informações, veja Elemento WorkingFolder
Elemento ConsoleRedirection
Aviso
Não use 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 chamada "log" no nó de cluster em que o aplicativo é implantado e executado. Para obter mais informações, veja Elemento ConsoleRedirection
Elemento EntryPoint
O executável especificado pelo EntryPoint normalmente é o host de serviço de longa duração. A presença de um ponto de entrada de instalação separado evita a necessidade de executar o host de serviço com altos privilégios por longos períodos de tempo. O executável especificado pelo EntryPoint é executado depois que o SetupEntryPoint é encerrado com êxito. O processo resultante será monitorado e reiniciado (começando novamente com SetupEntryPoint) se ele terminar ou falhar. Para obter mais informações, confira Elemento EntryPoint
Elemento ExeHost
Para obter mais informações, veja 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, definido pelo usuário, que o processo pode ler de volta no tempo de execução. Durante a atualização, se apenas a versão do ConfigPackage tiver sido alterada, o processo de 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, confira Elemento ConfigPackage
Elemento Resources
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 pelas seções Entidades de segurança e Políticas do manifesto do aplicativo. Para obter mais informações, confira Elemento Resources
Elemento Endpoints
Define pontos de extremidade para o serviço. Para obter mais informações, confira Elemento Endpoints
Elemento Endpoint
O ponto de extremidade, declarado no manifesto do serviço, a ser substituído. Para obter mais informações, confira Elemento Endpoint
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 que pode ser atualizado independentemente, a configuração e os pacotes de código que compõem um pacote de serviço para dar suporte a um ou mais tipos de serviço. Recursos, configurações de diagnóstico e metadados de serviço, como o tipo de serviço, as propriedades de integridade e as métricas de balanceamento de carga, também são especificados. Para obter mais informações, confira Elemento ServiceManifest
Elemento ServiceTypes
Define os tipos de serviço com suporte por um CodePackage no manifesto. Quando um serviço é instanciado em relação a um desses tipos de serviço, todos os pacotes de código declarados nesse manifesto são ativados com a execução de 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, confira Elemento ServiceTypes
Elemento StatefulServiceType
Descreve um tipo de serviço com estado. Para obter mais informações, veja Elemento StatefulServiceType
Elemento CodePackage
Descreve um pacote de código que dá suporte a 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 nesse manifesto são ativados com a execução de seus pontos de entrada. Os processos resultantes devem registrar os tipos de serviço com suporte no tempo de execução. Quando há vários pacotes de código, eles serão todos ativados sempre que o sistema procurar por qualquer um dos tipos de serviço declarados. Para obter mais informações, confira Elemento CodePackage
Elemento EntryPoint
O executável especificado pelo EntryPoint normalmente é o host de serviço de longa duração. A presença de um ponto de entrada de instalação separado evita a necessidade de executar o host de serviço com altos privilégios por longos períodos de tempo. O executável especificado pelo EntryPoint é executado depois que o SetupEntryPoint é encerrado com êxito. O processo resultante será monitorado e reiniciado (começando novamente com SetupEntryPoint) se ele terminar ou falhar. Para obter mais informações, confira Elemento EntryPoint
Elemento ExeHost
Para obter mais informações, veja Elemento ExeHost
Elemento Program
O nome do executável. Por exemplo, "MySetup.bat" ou "MyServiceHost.exe". Para obter mais informações, veja elemento de programa
Elemento WorkingFolder
O diretório de trabalho para o processo no pacote de códigos no nó de cluster em que o aplicativo é implantado. Você pode especificar três valores: Trabalho (o padrão), CodePackage ou CodeBase. CodeBase especifica que o diretório de trabalho está 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ódigos, independentemente do local em que o EXE é definido no diretório do pacote de códigos. Trabalho define o diretório de trabalho para uma pasta exclusiva criada no nó. Essa 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 para a pasta de trabalho do aplicativo. Esse é o local em que os processos podem gravar os dados. Não é recomendável gravar dados no pacote de códigos ou base de código, uma vez que essas pastas podem ser compartilhadas entre instâncias diferentes do aplicativo e ser excluídas. Para obter mais informações, veja 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, definido pelo usuário, que o processo pode ler de volta no tempo de execução. Durante a atualização, se apenas a versão do ConfigPackage tiver sido alterada, o processo de 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, confira Elemento ConfigPackage
Elemento DataPackage
Declara uma pasta, nomeada pelo atributo Name, em PackageRoot que contém os arquivos de dados estáticos a serem consumidos pelo processo no tempo de execução. O Service Fabric reciclará todos os EXEs e DLLHOSTs especificados nos pacotes de host e de suporte quando um dos pacotes de dados listados no manifesto do serviço forem atualizados. Para obter mais informações, confira Elemento DataPackage
Elemento Resources
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 pelas seções Entidades de segurança e Políticas do manifesto do aplicativo. Para obter mais informações, confira Elemento Resources
Elemento Endpoints
Define pontos de extremidade para o serviço. Para obter mais informações, confira Elemento Endpoints
Elemento Endpoint
O ponto de extremidade, declarado no manifesto do serviço, a ser substituído. Para obter mais informações, confira Elemento Endpoint