Dela via


Exempel på Reliable Services-program och tjänstmanifest

Följande är exempel på program- och tjänstmanifest för ett Service Fabric-program med en ASP.NET Core-webbklientdel och en tillståndskänslig serverdel. Syftet med dessa exempel är att visa vilka inställningar som är tillgängliga och hur du använder dem. Dessa program- och tjänstmanifest baseras på Service Fabric .NET-snabbstartsmanifest .

Följande funktioner visas:

Manifest Funktioner
Programmanifest resursstyrning, kör en tjänst som ett lokalt administratörskonto, tillämpar en standardprincip på alla tjänstkodpaket, skapar användar- och gruppobjekt, delar ett datapaket mellan tjänstinstanser, åsidosätter tjänstslutpunkter
FrontEndService-tjänstmanifest Kör ett skript vid tjänststart, definiera en HTTPS-slutpunkt
BackEndService-tjänstmanifest Deklarera ett konfigurationspaket, deklarera ett datapaket, konfigurera en slutpunkt

Mer information om specifika XML-element finns i Programmanifestelement, VotingWeb-tjänstmanifestelement och VotingData-tjänstmanifestelement .

Programmanifest

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

VotingWeb-tjänstmanifest

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

VotingData-tjänstmanifest

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

Programmanifestelement

ApplicationManifest-element

Deklarativt beskriver programtypen och versionen. Ett eller flera tjänstmanifest för de konstituerande tjänsterna refereras till att bestå av en programtyp. Konfigurationsinställningarna för de ingående tjänsterna kan åsidosättas med hjälp av parametriserade programinställningar. Standardtjänster, tjänstmallar, huvudnamn, principer, diagnostikkonfiguration och certifikat kan också deklareras på programnivå. Mer information finns i ApplicationManifest-element

Parameterelement

Deklarerar de parametrar som används i det här programmanifestet. Värdet för dessa parametrar kan anges när programmet instansieras och kan användas för att åsidosätta inställningar för program- eller tjänstkonfiguration. Mer information finns i Parameterelement

Parameterelement

En programparameter som ska användas i det här manifestet. Parametervärdet kan ändras under programinstansiering, eller om inget värde anges används standardvärdet. Mer information finns i Parameterelement

ServiceManifestImportera element

Importerar ett tjänstmanifest som skapats av tjänstutvecklaren. Ett tjänstmanifest måste importeras för varje komponenttjänst i programmet. Konfigurations åsidosättningar och principer kan deklareras för tjänstmanifestet. Mer information finns i ServiceManifestImport-element

ServiceManifestRef-element

Importerar tjänstmanifestet med referens. För närvarande måste tjänstmanifestfilen (ServiceManifest.xml) finnas i byggpaketet. Mer information finns i ServiceManifestRef-element

ResourceOverrides-element

Anger resurs åsidosättningar för slutpunkter som deklarerats i tjänstmanifestresurser. Mer information finns i ResourceOverrides-element

Slutpunktselement

Slutpunkterna som ska åsidosättas. Mer information finns i Endpoints-element

Slutpunktselement

Slutpunkten, som deklareras i tjänstmanifestet, för åsidosättning. Mer information finns i Slutpunktselement

Principelement

Beskriver principer (slutpunktsbindning, paketdelning, körning och säkerhetsåtkomst) som ska tillämpas på det importerade tjänstmanifestet. Mer information finns i Element för principer

ServicePackageResourceGovernancePolicy-element

Definierar den resursstyrningsprincip som tillämpas på nivån för hela tjänstpaketet. Mer information finns i ServicePackageResourceGovernancePolicy-element

ResourceGovernancePolicy-element

Anger resursgränser för ett kodpaket. Mer information finns i ResourceGovernancePolicy-element

PackageSharingPolicy-element

Anger om en kod, konfiguration eller ett datapaket ska delas mellan tjänstinstanser av samma tjänsttyp. Mer information finns i PackageSharingPolicy-element

SecurityAccessPolicy-element

Ger åtkomstbehörighet till ett huvudnamn för en resurs (till exempel en slutpunkt) som definierats i ett tjänstmanifest. Vanligtvis är det mycket användbart att kontrollera och begränsa åtkomsten till tjänster till olika resurser för att minimera säkerhetsrisker. Detta är särskilt viktigt när programmet skapas från en samling tjänster från en marknadsplats som utvecklas av olika utvecklare. Mer information finns i SecurityAccessPolicy-element

RunAsPolicy-element

Anger det lokala eller lokala systemkonto som ett tjänstkodpaket ska köras som. Domänkonton stöds i Windows Server-distributioner där Microsoft Entra-ID är tillgängligt. Som standard körs program under det konto som Fabric.exe processen körs under. Program kan också köras som andra konton, som måste deklareras i avsnittet Huvudnamn. Om du tillämpar en RunAs-princip på en tjänst och tjänstmanifestet deklarerar slutpunktsresurser med HTTP-protokollet, måste du också ange en SecurityAccessPolicy för att säkerställa att portar som allokerats till dessa slutpunkter är korrekt åtkomstkontroll listade för det RunAs-användarkonto som tjänsten körs under. För en HTTPS-slutpunkt måste du också definiera en EndpointBindingPolicy för att ange namnet på certifikatet som ska returneras till klienten. Mer information finns i RunAsPolicy-element

DefaultServices-element

Deklarerar tjänstinstanser som skapas automatiskt när ett program instansieras mot den här programtypen. Mer information finns i DefaultServices-element

Tjänstelement

Deklarerar en tjänst som ska skapas automatiskt när programmet instansieras. Mer information finns i Tjänstelement

StatefulService-element

Definierar en tillståndskänslig tjänst. Mer information finns i StatefulService-element

StatelessService-element

Definierar en tillståndslös tjänst. Mer information finns i StatelessService-element

Element för huvudnamn

Beskriver de säkerhetsobjekt (användare, grupper) som krävs för att programmet ska kunna köra tjänster och säkra resurser. Huvudnamn refereras till i principavsnitten. Mer information finns i Principals-element

Gruppelement

Deklarerar en uppsättning grupper som säkerhetsobjekt, som kan refereras till i principer. Grupper är användbara om det finns flera användare för olika startpunkter för tjänsten och de måste ha vissa vanliga behörigheter som är tillgängliga på gruppnivå. Mer information finns i Grupper-element

Gruppelement

Deklarerar en grupp som ett säkerhetsobjekt som kan refereras i principer. Mer information finns i Gruppelement

Medlemskapselement

Mer information finns i Medlemskapselement

SystemGroup-element

Mer information finns i SystemGroup-element

Användarelement

Deklarerar en uppsättning användare som säkerhetsobjekt, som kan refereras till i principer. Mer information finns i Användarelement

Användarelement

Deklarerar en användare som ett säkerhetsobjekt som kan refereras i principer. Mer information finns i Användarelement

MemberOf-element

Användare kan läggas till i valfri befintlig medlemskapsgrupp, så att de kan ärva alla egenskaper och säkerhetsinställningar för den medlemskapsgruppen. Medlemskapsgruppen kan användas för att skydda externa resurser som måste nås av olika tjänster eller samma tjänst (på en annan dator). Mer information finns i MemberOf-element

SystemGroup-element

Systemgruppen som användaren ska läggas till i. Systemgruppen måste definieras i avsnittet Grupper. Mer information finns i SystemGroup-element

Gruppelement

Gruppen som användaren ska läggas till i. Gruppen måste definieras i avsnittet Grupper. Mer information finns i Gruppelement

Principelement

Beskriver de principer (loggsamling, standardkörning, hälsa och säkerhetsåtkomst) som ska tillämpas på programnivå. Mer information finns i Element för principer

DefaultRunAsPolicy-element

Ange ett standardanvändarkonto för alla tjänstkodpaket som inte har en specifik RunAsPolicy definierad i avsnittet ServiceManifestImport. Mer information finns i DefaultRunAsPolicy-element

Manifestelement för VotingWeb-tjänsten

ServiceManifest-element

Deklarativt beskriver tjänsttypen och versionen. Den visar de oberoende uppgraderingsbara kod-, konfigurations- och datapaketen som tillsammans utgör ett tjänstpaket för att stödja en eller flera tjänsttyper. Resurser, diagnostikinställningar och tjänstmetadata, till exempel tjänsttyp, hälsoegenskaper och belastningsutjämningsmått, anges också. Mer information finns i ServiceManifest-element

ServiceTypes-element

Definierar vilka tjänsttyper som stöds av ett CodePackage i det här manifestet. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. Tjänsttyper deklareras på manifestnivå och inte på kodpaketnivå. Mer information finns i ServiceTypes-element

StatelessServiceType-element

Beskriver en tillståndslös tjänsttyp. Mer information finns i StatelessServiceType-element

CodePackage-element

Beskriver ett kodpaket som stöder en definierad tjänsttyp. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. De resulterande processerna förväntas registrera de tjänsttyper som stöds vid körning. När det finns flera kodpaket aktiveras alla när systemet letar efter någon av de deklarerade tjänsttyperna. Mer information finns i CodePackage-element

SetupEntryPoint-element

En privilegierad startpunkt som som standard körs med samma autentiseringsuppgifter som Service Fabric (vanligtvis NETWORKSERVICE-kontot) före någon annan startpunkt. Den körbara fil som anges av EntryPoint är vanligtvis den långvariga tjänstvärden. Förekomsten av en separat startpunkt för installation undviker att behöva köra tjänstvärden med hög behörighet under längre tidsperioder. Mer information finns i SetupEntryPoint-element

ExeHost-element

Mer information finns i ExeHost-element

Programelement

Det körbara namnet. Till exempel "MySetup.bat" eller "MyServiceHost.exe". Mer information finns i Programelement

Argumentelement

Mer information finns i Argumentelement

WorkingFolder-element

Arbetskatalogen för processen i kodpaketet på klusternoden där programmet distribueras. Du kan ange tre värden: Arbete (standard), CodePackage eller CodeBase. CodeBase anger att arbetskatalogen är inställd på den katalog där EXE definieras i kodpaketet. CodePackage anger arbetskatalogen till roten för kodpaketet oavsett var EXE definieras i kodpaketkatalogen. Work anger arbetskatalogen till en unik mapp som skapats på noden. Den här mappen är densamma för hela programinstansen. Som standard är arbetskatalogen för alla processer i programmet inställd på arbetsmappen för programmet. Det är här processerna kan skriva data. Att skriva data i kodpaketet eller kodbasen rekommenderas inte eftersom dessa mappar kan delas mellan olika programinstanser och kan tas bort. Mer information finns i WorkingFolder-element

ConsoleRedirection-element

Varning

Använd inte konsolomdirigering i ett produktionsprogram, använd det bara för lokal utveckling och felsökning. Omdirigerar konsolutdata från startskriptet till en utdatafil i programmappen med namnet "log" på klusternoden där programmet distribueras och körs. Mer information finns i ConsoleRedirection-element

EntryPoint-element

Den körbara fil som anges av EntryPoint är vanligtvis den långvariga tjänstvärden. Förekomsten av en separat startpunkt för installation undviker att behöva köra tjänstvärden med hög behörighet under längre tidsperioder. Den körbara fil som anges av EntryPoint körs när SetupEntryPoint avslutas. Den resulterande processen övervakas och startas om (börjar igen med SetupEntryPoint) om den någonsin avslutas eller kraschar. Mer information finns i EntryPoint-element

ExeHost-element

Mer information finns i ExeHost-element

ConfigPackage-element

Deklarerar en mapp, med namnet efter attributet Namn, under PackageRoot som innehåller en Settings.xml fil. Den här filen innehåller avsnitt av användardefinierade nyckel/värde-parinställningar som processen kan läsa tillbaka vid körning. Om endast ConfigPackage-versionen har ändrats under en uppgradering startas inte körningsprocessen om. I stället meddelar ett återanrop processen att konfigurationsinställningarna har ändrats så att de kan läsas in dynamiskt igen. Mer information finns i ConfigPackage-element

Resurselement

Beskriver de resurser som används av den här tjänsten, som kan deklareras utan att ändra kompilerad kod och ändras när tjänsten distribueras. Åtkomsten till dessa resurser styrs via avsnitten Huvudnamn och principer i programmanifestet. Mer information finns i Resurselement

Slutpunktselement

Definierar slutpunkter för tjänsten. Mer information finns i Endpoints-element

Slutpunktselement

Slutpunkten, som deklareras i tjänstmanifestet, för åsidosättning. Mer information finns i Slutpunktselement

Manifestelement för VotingData-tjänsten

ServiceManifest-element

Deklarativt beskriver tjänsttypen och versionen. Den visar de oberoende uppgraderingsbara kod-, konfigurations- och datapaketen som tillsammans utgör ett tjänstpaket för att stödja en eller flera tjänsttyper. Resurser, diagnostikinställningar och tjänstmetadata, till exempel tjänsttyp, hälsoegenskaper och belastningsutjämningsmått, anges också. Mer information finns i ServiceManifest-element

ServiceTypes-element

Definierar vilka tjänsttyper som stöds av ett CodePackage i det här manifestet. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. Tjänsttyper deklareras på manifestnivå och inte på kodpaketnivå. Mer information finns i ServiceTypes-element

StatefulServiceType-element

Beskriver en tillståndskänslig tjänsttyp. Mer information finns i StatefulServiceType-element

CodePackage-element

Beskriver ett kodpaket som stöder en definierad tjänsttyp. När en tjänst instansieras mot någon av dessa tjänsttyper aktiveras alla kodpaket som deklareras i det här manifestet genom att deras startpunkter körs. De resulterande processerna förväntas registrera de tjänsttyper som stöds vid körning. När det finns flera kodpaket aktiveras alla när systemet letar efter någon av de deklarerade tjänsttyperna. Mer information finns i CodePackage-element

EntryPoint-element

Den körbara fil som anges av EntryPoint är vanligtvis den långvariga tjänstvärden. Förekomsten av en separat startpunkt för installation undviker att behöva köra tjänstvärden med hög behörighet under längre tidsperioder. Den körbara fil som anges av EntryPoint körs när SetupEntryPoint avslutas. Den resulterande processen övervakas och startas om (börjar igen med SetupEntryPoint) om den någonsin avslutas eller kraschar. Mer information finns i EntryPoint-element

ExeHost-element

Mer information finns i ExeHost-element

Programelement

Det körbara namnet. Till exempel "MySetup.bat" eller "MyServiceHost.exe". Mer information finns i Programelement

WorkingFolder-element

Arbetskatalogen för processen i kodpaketet på klusternoden där programmet distribueras. Du kan ange tre värden: Arbete (standard), CodePackage eller CodeBase. CodeBase anger att arbetskatalogen är inställd på den katalog där EXE definieras i kodpaketet. CodePackage anger arbetskatalogen till roten för kodpaketet oavsett var EXE definieras i kodpaketkatalogen. Work anger arbetskatalogen till en unik mapp som skapats på noden. Den här mappen är densamma för hela programinstansen. Som standard är arbetskatalogen för alla processer i programmet inställd på arbetsmappen för programmet. Det är här processerna kan skriva data. Att skriva data i kodpaketet eller kodbasen rekommenderas inte eftersom dessa mappar kan delas mellan olika programinstanser och kan tas bort. Mer information finns i WorkingFolder-element

ConfigPackage-element

Deklarerar en mapp, med namnet efter attributet Namn, under PackageRoot som innehåller en Settings.xml fil. Den här filen innehåller avsnitt av användardefinierade nyckel/värde-parinställningar som processen kan läsa tillbaka vid körning. Om endast ConfigPackage-versionen har ändrats under en uppgradering startas inte körningsprocessen om. I stället meddelar ett återanrop processen att konfigurationsinställningarna har ändrats så att de kan läsas in dynamiskt igen. Mer information finns i ConfigPackage-element

DataPackage-element

Deklarerar en mapp med namnet med attributet Namn under PackageRoot som innehåller statiska datafiler som ska användas av processen vid körning. Service Fabric återanvänder alla EXE:er och DLLHOST:er som anges i värd- och supportpaketen när något av de datapaket som anges i tjänstmanifestet uppgraderas. Mer information finns i DataPackage-element

Resurselement

Beskriver de resurser som används av den här tjänsten, som kan deklareras utan att ändra kompilerad kod och ändras när tjänsten distribueras. Åtkomsten till dessa resurser styrs via avsnitten Huvudnamn och principer i programmanifestet. Mer information finns i Resurselement

Slutpunktselement

Definierar slutpunkter för tjänsten. Mer information finns i Endpoints-element

Slutpunktselement

Slutpunkten, som deklareras i tjänstmanifestet, för åsidosättning. Mer information finns i Slutpunktselement