Sdílet prostřednictvím


Příklady manifestu služeb a aplikace Reliable Services

Následují příklady manifestů aplikací a služeb pro aplikaci Service Fabric s webovým front-endem ASP.NET Core a stavovým back-endem. Účelem těchto příkladů je ukázat, jaká nastavení jsou k dispozici a jak je používat. Tyto manifesty aplikací a služeb jsou založené na manifestech rychlého startu Service Fabric .NET.

Zobrazí se následující funkce:

Manifest Funkce
Manifest aplikace zásady správného řízení prostředků, spuštění služby jako účtu místního správce, použití výchozích zásad pro všechny balíčky kódu služby, vytvoření instančních objektů uživatele a skupiny, sdílení datového balíčku mezi instancemi služby, přepsání koncových bodů služby
Manifest služby FrontEndService Spuštění skriptu při spuštění služby, definování koncového bodu HTTPS
Manifest služby BackEndService Deklarace konfiguračního balíčku, deklarace datového balíčku, konfigurace koncového bodu

Další informace o konkrétních elementech XML najdete v části Elementy manifestu aplikace, elementy manifestu služby VotingWeb a Elementy manifestu služby VotingData.

Manifest aplikace

<?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>

Manifest služby 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>

Manifest služby 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>

Prvky manifestu aplikace

ApplicationManifest Element

Deklarativní popis typu a verze aplikace. Na jeden nebo více manifestů služby základních služeb se odkazuje na vytvoření typu aplikace. Nastavení konfigurace základních služeb je možné přepsat pomocí parametrizovaných nastavení aplikace. Výchozí služby, šablony služeb, instanční objekty, zásady, nastavení diagnostiky a certifikáty lze deklarovat také na úrovni aplikace. Další informace naleznete v tématu ApplicationManifest – element

Parameters Element

Deklaruje parametry, které se používají v tomto manifestu aplikace. Hodnotu těchto parametrů lze zadat při vytvoření instance aplikace a lze ji použít k přepsání nastavení konfigurace aplikace nebo služby. Další informace naleznete v tématu Parameters – element

Parameter – element

Parametr aplikace, který se má použít v tomto manifestu. Hodnotu parametru je možné změnit během vytváření instancí aplikace, nebo pokud není zadána žádná hodnota, použije se výchozí hodnota. Další informace naleznete v tématu Element parametru

ServiceManifestImport Element

Importuje manifest služby vytvořený vývojářem služby. Manifest služby musí být importován pro každou základní službu v aplikaci. Přepsání konfigurace a zásady lze deklarovat pro manifest služby. Další informace naleznete v tématu ServiceManifestImport – element

ServiceManifestRef Element

Importuje manifest služby odkazem. V současné době musí soubor manifestu služby (ServiceManifest.xml) existovat v balíčku sestavení. Další informace naleznete v tématu ServiceManifestRef – element

ResourceOverrides Element

Určuje přepsání prostředků pro koncové body deklarované v prostředcích manifestu služby. Další informace naleznete v tématu ResourceOverrides – element

Endpoints Element

Koncové body, které chcete přepsat. Další informace najdete v tématu Element koncové body.

Koncový bod – element

Koncový bod deklarovaný v manifestu služby pro přepsání. Další informace najdete v tématu Element koncového bodu.

Policies Element

Popisuje zásady (vazby koncového bodu, sdílení balíčků, přístup spustit jako a přístup k zabezpečení), které se použijí v importovaném manifestu služby. Další informace najdete v tématu Element zásad.

ServicePackageResourceGovernancePolicy Element

Definuje zásady správného řízení prostředků, které se použijí na úrovni celého balíčku služby. Další informace naleznete v tématu ServicePackageResourceGovernancePolicy – element

ResourceGovernancePolicy Element

Určuje omezení prostředků pro balíček kódu. Další informace naleznete v tématu ResourceGovernancePolicy – element

PackageSharingPolicy Element

Označuje, jestli se má kód, konfigurace nebo datový balíček sdílet napříč instancemi služby stejného typu služby. Další informace naleznete v tématu PackageSharingPolicy – element

SecurityAccessPolicy Element

Uděluje přístupová oprávnění k objektu zabezpečení prostředku (například koncovému bodu) definovanému v manifestu služby. Obvykle je velmi užitečné řídit a omezit přístup služeb k různým prostředkům, aby se minimalizovala rizika zabezpečení. To je zvlášť důležité, když je aplikace vytvořená z kolekce služeb z marketplace, které vyvíjejí různí vývojáři. Další informace naleznete v tématu SecurityAccessPolicy – element

RunAsPolicy Element

Určuje místní uživatelský nebo místní systémový účet, který se spustí jako balíček kódu služby. Účty domény jsou podporovány v nasazeních Windows Serveru, kde je k dispozici Microsoft Entra ID. Ve výchozím nastavení aplikace běží pod účtem, pod kterým běží proces Fabric.exe. Aplikace se můžou spouštět také jako jiné účty, které musí být deklarovány v části Objekty zabezpečení. Pokud použijete zásadu Spustit jako pro službu a manifest služby deklaruje prostředky koncového bodu pomocí protokolu HTTP, musíte také zadat SecurityAccessPolicy, abyste zajistili, že porty přidělené těmto koncovým bodům jsou správně uvedené pro uživatelský účet Spustit jako, pod kterým služba běží. U koncového bodu HTTPS musíte také definovat EndpointBindingPolicy, abyste označili název certifikátu, který se má vrátit do klienta. Další informace naleznete v tématu RunAsPolicy – element

DefaultServices Element

Deklaruje instance služby, které se automaticky vytvoří při každé instanci aplikace pro tento typ aplikace. Další informace naleznete v tématu DefaultServices – element

Service Element

Deklaruje službu, která se vytvoří automaticky při vytváření instance aplikace. Další informace naleznete v tématu Service – element

StatefulService Element

Definuje stavovou službu. Další informace naleznete v tématu StatefulService – element

StatelessService Element

Definuje bezstavovou službu. Další informace naleznete v tématu StatelessService – element

Principals Element

Popisuje objekty zabezpečení (uživatele, skupiny), které tato aplikace potřebuje ke spouštění služeb a zabezpečení prostředků. Na objekty zabezpečení se odkazuje v oddílech zásad. Další informace naleznete v tématu Objekty zabezpečení – element

Groups – element

Deklaruje sadu skupin jako objekty zabezpečení, na které lze odkazovat v zásadách. Skupiny jsou užitečné, pokud existuje více uživatelů pro různé vstupní body služby a potřebují mít určitá běžná oprávnění, která jsou k dispozici na úrovni skupiny. Další informace naleznete v tématu Groups – element

Group – element

Deklaruje skupinu jako objekt zabezpečení, na který lze odkazovat v zásadách. Další informace najdete v tématu Element skupiny.

Element Členství

Další informace naleznete v tématu Element členství

SystemGroup Element

Další informace naleznete v tématu SystemGroup – element

Users Element

Deklaruje sadu uživatelů jako objekty zabezpečení, na které lze odkazovat v zásadách. Další informace naleznete v tématu Users – element

User Element

Deklaruje uživatele jako objekt zabezpečení, na který lze odkazovat v zásadách. Další informace naleznete v tématu User – element

MemberOf Element

Uživatele je možné přidat do jakékoli existující skupiny členství, takže může dědit všechny vlastnosti a nastavení zabezpečení této skupiny členství. Skupinu členství je možné použít k zabezpečení externích prostředků, ke kterým musí přistupovat různé služby nebo stejná služba (na jiném počítači). Další informace naleznete v tématu MemberOf – element

SystemGroup Element

Systémová skupina, do které chcete přidat uživatele. Systémová skupina musí být definována v části Skupiny. Další informace naleznete v tématu SystemGroup – element

Group – element

Skupina, do které chcete přidat uživatele. Skupina musí být definována v části Skupiny. Další informace najdete v tématu Element skupiny.

Policies Element

Popisuje zásady (shromažďování protokolů, výchozí přístup spustit jako, stav a přístup zabezpečení), které se použijí na úrovni aplikace. Další informace najdete v tématu Element zásad.

DefaultRunAsPolicy Element

Zadejte výchozí uživatelský účet pro všechny balíčky kódu služby, které nemají definovanou specifickou hodnotu RunAsPolicy v části ServiceManifestImport. Další informace naleznete v tématu DefaultRunAsPolicy – element

Elementy manifestu služby VotingWeb

ServiceManifest Element

Deklarativní popis typu a verze služby. Uvádí nezávisle upgradovatelný kód, konfiguraci a datové balíčky, které společně tvoří balíček služby pro podporu jednoho nebo více typů služeb. Zadají se také prostředky, nastavení diagnostiky a metadata služeb, jako je typ služby, vlastnosti stavu a metriky vyrovnávání zatížení. Další informace naleznete v tématu ServiceManifest – element

ServiceTypes Element

Definuje, jaké typy služeb podporuje CodePackage v tomto manifestu. Když se služba vytvoří instance pro jeden z těchto typů služeb, aktivují se všechny balíčky kódu deklarované v tomto manifestu spuštěním vstupních bodů. Typy služeb jsou deklarovány na úrovni manifestu, nikoli na úrovni balíčku kódu. Další informace naleznete v tématu ServiceTypes – element

StatelessServiceType Element

Popisuje bezstavový typ služby. Další informace naleznete v tématu StatelessServiceType – element

CodePackage Element

Popisuje balíček kódu, který podporuje definovaný typ služby. Když se služba vytvoří instance pro jeden z těchto typů služeb, aktivují se všechny balíčky kódu deklarované v tomto manifestu spuštěním vstupních bodů. Očekává se, že výsledné procesy zaregistrují podporované typy služeb za běhu. Pokud existuje více balíčků kódu, jsou všechny aktivovány pokaždé, když systém hledá některý z deklarovaných typů služeb. Další informace naleznete v tématu CodePackage – element

SetupEntryPoint Element

Privilegovaný vstupní bod, který se ve výchozím nastavení spouští se stejnými přihlašovacími údaji jako Service Fabric (obvykle účet NETWORKSERVICE) před jakýmkoli jiným vstupním bodem. Spustitelný soubor určený EntryPointem je obvykle dlouhotrvajícím hostitelem služby. Přítomnost samostatného vstupního bodu nastavení zabraňuje spuštění hostitele služby s vysokými oprávněními po delší dobu. Další informace naleznete v tématu SetupEntryPoint – element

ExeHost Element

Další informace naleznete v tématu ExeHost – element

Program Element

Název spustitelného souboru. Například "MySetup.bat" nebo "MyServiceHost.exe". Další informace naleznete v tématu Program – element

Argumenty – element

Další informace naleznete v tématu Argumenty – element

WorkingFolder Element

Pracovní adresář pro proces v balíčku kódu v uzlu clusteru, kde je aplikace nasazená. Můžete zadat tři hodnoty: Práce (výchozí), CodePackage nebo CodeBase. Základ kódu určuje, že pracovní adresář je nastaven na adresář, ve kterém je exe definován v balíčku kódu. CodePackage nastaví pracovní adresář tak, aby byl kořenem balíčku kódu bez ohledu na to, kde je exe definován v adresáři balíčku kódu. Práce nastaví pracovní adresář na jedinečnou složku vytvořenou v uzlu. Tato složka je stejná pro celou instanci aplikace. Ve výchozím nastavení je pracovní adresář všech procesů v aplikaci nastavený na pracovní složku aplikace. Tady můžou procesy zapisovat data. Zápis dat do balíčku kódu nebo základu kódu se nedoporučuje, protože tyto složky můžou být sdíleny mezi různými instancemi aplikace a mohou se odstranit. Další informace naleznete v tématu WorkingFolder – element

ConsoleRedirection Element

Upozorňující

Nepoužívejte přesměrování konzoly v produkční aplikaci, používejte ho jenom pro místní vývoj a ladění. Přesměruje výstup konzoly ze spouštěcího skriptu do výstupního souboru ve složce aplikace s názvem "log" na uzlu clusteru, kde je aplikace nasazená a spuštěná. Další informace naleznete v tématu ConsoleRedirection – element

EntryPoint Element

Spustitelný soubor určený EntryPointem je obvykle dlouhotrvajícím hostitelem služby. Přítomnost samostatného vstupního bodu nastavení zabraňuje spuštění hostitele služby s vysokými oprávněními po delší dobu. Spustitelný soubor zadaný entrypointem se spustí po úspěšném ukončení setupEntryPointu. Výsledný proces se monitoruje a restartuje (počínaje aplikací SetupEntryPoint), pokud se někdy ukončí nebo dojde k chybovému ukončení. Další informace naleznete v tématu Element EntryPoint

ExeHost Element

Další informace naleznete v tématu ExeHost – element

ConfigPackage Element

Deklaruje složku pojmenovanou atributem Name v části PackageRoot, která obsahuje soubor Nastavení.xml. Tento soubor obsahuje části uživatelem definovaného nastavení páru klíč-hodnota, které proces může číst za běhu. Pokud se během upgradu změnila pouze verze nástroje ConfigPackage, pak se spuštěný proces nerestartuje. Místo toho zpětné volání upozorní proces, že se změnilo nastavení konfigurace, aby bylo možné je dynamicky načíst. Další informace naleznete v tématu ConfigPackage – element

Resources Element

Popisuje prostředky používané touto službou, které lze deklarovat bez úpravy zkompilovaného kódu a změny při nasazení služby. Přístup k těmto prostředkům se řídí prostřednictvím oddílů Objekty zabezpečení a Zásady manifestu aplikace. Další informace naleznete v tématu Resources – element

Endpoints Element

Definuje koncové body pro službu. Další informace najdete v tématu Element koncové body.

Koncový bod – element

Koncový bod deklarovaný v manifestu služby pro přepsání. Další informace najdete v tématu Element koncového bodu.

Elementy manifestu služby VotingData

ServiceManifest Element

Deklarativní popis typu a verze služby. Uvádí nezávisle upgradovatelný kód, konfiguraci a datové balíčky, které společně tvoří balíček služby pro podporu jednoho nebo více typů služeb. Zadají se také prostředky, nastavení diagnostiky a metadata služeb, jako je typ služby, vlastnosti stavu a metriky vyrovnávání zatížení. Další informace naleznete v tématu ServiceManifest – element

ServiceTypes Element

Definuje, jaké typy služeb podporuje CodePackage v tomto manifestu. Když se služba vytvoří instance pro jeden z těchto typů služeb, aktivují se všechny balíčky kódu deklarované v tomto manifestu spuštěním vstupních bodů. Typy služeb jsou deklarovány na úrovni manifestu, nikoli na úrovni balíčku kódu. Další informace naleznete v tématu ServiceTypes – element

StatefulServiceType Element

Popisuje stavový typ služby. Další informace naleznete v tématu StatefulServiceType – element

CodePackage Element

Popisuje balíček kódu, který podporuje definovaný typ služby. Když se služba vytvoří instance pro jeden z těchto typů služeb, aktivují se všechny balíčky kódu deklarované v tomto manifestu spuštěním vstupních bodů. Očekává se, že výsledné procesy zaregistrují podporované typy služeb za běhu. Pokud existuje více balíčků kódu, jsou všechny aktivovány pokaždé, když systém hledá některý z deklarovaných typů služeb. Další informace naleznete v tématu CodePackage – element

EntryPoint Element

Spustitelný soubor určený EntryPointem je obvykle dlouhotrvajícím hostitelem služby. Přítomnost samostatného vstupního bodu nastavení zabraňuje spuštění hostitele služby s vysokými oprávněními po delší dobu. Spustitelný soubor zadaný entrypointem se spustí po úspěšném ukončení setupEntryPointu. Výsledný proces se monitoruje a restartuje (počínaje aplikací SetupEntryPoint), pokud se někdy ukončí nebo dojde k chybovému ukončení. Další informace naleznete v tématu Element EntryPoint

ExeHost Element

Další informace naleznete v tématu ExeHost – element

Program Element

Název spustitelného souboru. Například "MySetup.bat" nebo "MyServiceHost.exe". Další informace naleznete v tématu Program – element

WorkingFolder Element

Pracovní adresář pro proces v balíčku kódu v uzlu clusteru, kde je aplikace nasazená. Můžete zadat tři hodnoty: Práce (výchozí), CodePackage nebo CodeBase. Základ kódu určuje, že pracovní adresář je nastaven na adresář, ve kterém je exe definován v balíčku kódu. CodePackage nastaví pracovní adresář tak, aby byl kořenem balíčku kódu bez ohledu na to, kde je exe definován v adresáři balíčku kódu. Práce nastaví pracovní adresář na jedinečnou složku vytvořenou v uzlu. Tato složka je stejná pro celou instanci aplikace. Ve výchozím nastavení je pracovní adresář všech procesů v aplikaci nastavený na pracovní složku aplikace. Tady můžou procesy zapisovat data. Zápis dat do balíčku kódu nebo základu kódu se nedoporučuje, protože tyto složky můžou být sdíleny mezi různými instancemi aplikace a mohou se odstranit. Další informace naleznete v tématu WorkingFolder – element

ConfigPackage Element

Deklaruje složku pojmenovanou atributem Name v části PackageRoot, která obsahuje soubor Nastavení.xml. Tento soubor obsahuje části uživatelem definovaného nastavení páru klíč-hodnota, které proces může číst za běhu. Pokud se během upgradu změnila pouze verze nástroje ConfigPackage, pak se spuštěný proces nerestartuje. Místo toho zpětné volání upozorní proces, že se změnilo nastavení konfigurace, aby bylo možné je dynamicky načíst. Další informace naleznete v tématu ConfigPackage – element

DataPackage Element

Deklaruje složku pojmenovanou atributem Name v části PackageRoot, která obsahuje statické datové soubory, které má proces za běhu využívat. Service Fabric bude recyklovat všechny balíčky EXEs a DLLHOST zadané v hostiteli a podpůrné balíčky, když se upgraduje některý z datových balíčků uvedených v manifestu služby. Další informace naleznete v tématu DataPackage – element

Resources Element

Popisuje prostředky používané touto službou, které lze deklarovat bez úpravy zkompilovaného kódu a změny při nasazení služby. Přístup k těmto prostředkům se řídí prostřednictvím oddílů Objekty zabezpečení a Zásady manifestu aplikace. Další informace naleznete v tématu Resources – element

Endpoints Element

Definuje koncové body pro službu. Další informace najdete v tématu Element koncové body.

Koncový bod – element

Koncový bod deklarovaný v manifestu služby pro přepsání. Další informace najdete v tématu Element koncového bodu.