Przykłady manifestu wielokontenerowej aplikacji i usługi

Poniżej przedstawiono przykłady manifestów aplikacji i usługi dla aplikacji usługi Service Fabric z wieloma kontenerami. Celem tych przykładów jest pokazanie, jakie ustawienia są dostępne i jak ich używać. Te manifesty aplikacji i usługi są oparte na manifestach Windows Server 2016 Container Sample.

Poniżej przedstawiono następujące funkcje:

Manifest Funkcje
Manifest aplikacji przesłanianie zmiennych środowiskowych, konfigurowanie mapowania port-hosta kontenera, konfigurowanie uwierzytelniania rejestru kontenerów, zarządzanie zasobami, ustawianie trybu izolacji, określanie obrazów kontenerów specyficznych dla kompilacji systemu operacyjnego
Manifest usługi FrontEndService ustawianie zmiennych środowiskowych, konfigurowanie punktu końcowego, przekazywanie poleceń do kontenera, importowanie certyfikatu do kontenera
Manifest usługi BackEndService ustawianie zmiennych środowiskowych, konfigurowanie punktu końcowego, konfigurowanie sterownika woluminu

Zobacz Elementy manifestu aplikacji, elementy manifestu usługi FrontEndService i elementy manifestu usługi BackEndService , aby uzyskać więcej informacji na temat określonych elementów XML.

Manifest aplikacji

<?xml version="1.0" encoding="utf-8"?>
<ApplicationManifest ApplicationTypeName="Container.ApplicationType"
                     ApplicationTypeVersion="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">
  <Parameters>
    <Parameter Name="BackEndService_InstanceCount" DefaultValue="-1" />
    <Parameter Name="FrontEndService_InstanceCount" DefaultValue="-1" />
    <Parameter Name="CpuCores" DefaultValue="2" />
    <Parameter Name="BlockIOWeight" DefaultValue="200" />
    <Parameter Name="MaximumIOBandwidth" DefaultValue="1024" />
    <Parameter Name="MemoryReservationInMB" DefaultValue="1024" />
    <Parameter Name="MemorySwapInMB" DefaultValue="4084"/>
    <Parameter Name="MaximumIOps" DefaultValue="20"/>
    <Parameter Name="MemoryFront" DefaultValue="4084" />
    <Parameter Name="MemoryBack" DefaultValue="2048" />
    <Parameter Name="CertThumbprint" DefaultValue=""/>
  </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="BackEndServicePkg" ServiceManifestVersion="1.0.0" />    
    
    <!-- Policies to be applied to the imported service manifest. -->
    <Policies>
      <!-- Set resource governance at the service package level. -->
      <ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[MemoryFront]"/>

      <!-- Set resource governance at the code package level. -->
      <ResourceGovernancePolicy CodePackageRef="Code" CpuPercent="10" MemoryInMB="[MemoryFront]" BlockIOWeight="[BlockIOWeight]" MaximumIOBandwidth="[MaximumIOBandwidth]" MaximumIOps="[MaximumIOps]" MemoryReservationInMB="[MemoryReservationInMB]" MemorySwapInMB="[MemorySwapInMB]"/>
      
      <!-- Policies for activating container hosts. -->
      <ContainerHostPolicies CodePackageRef="Code" Isolation="process">
        
        <!-- Credentials for the repository hosting the container image.-->
        <RepositoryCredentials AccountName="sfsamples" Password="ENCRYPTED-PASSWORD" PasswordEncrypted="true"/>
        
        <!-- This binds the port the container is listening on (8905 in this sample) to an endpoint resource named "BackEndServiceTypeEndpoint", which is defined in the service manifest.  -->
        <PortBinding ContainerPort="8905" EndpointRef="BackEndServiceTypeEndpoint"/>
        
        <!-- Configure the Azure Files volume plugin.  Bind the source folder on the host VM or a remote share to the destination folder within the running container. -->
        <Volume Source="azfiles" Destination="c:\VolumeTest\Data" Driver="sfazurefile">
          <!-- Driver options to be passed to driver. The Azure Files volume plugin supports the following driver options:
            shareName (the Azure Files file share that provides the volume for the container), storageAccountName (the Azure storage account
            that contains the Azure Files file share), storageAccountKey (Access key for the Azure storage account that contains the Azure Files file share).
            These three driver options are required. -->
          <DriverOption Name="shareName" Value="" />
          <DriverOption Name="storageAccountName" Value="MY-STORAGE-ACCOUNT-NAME" />
          <DriverOption Name="storageAccountKey" Value="MY-STORAGE-ACCOUNT-KEY" />
        </Volume>
        
        <!-- Windows Server containers may not be compatible across different versions of the OS.  You can specify multiple OS images per container and tag 
        them with the build versions of the OS. Get the build version of the OS by running "winver" at a Windows command prompt. -->
        <ImageOverrides>
          <!-- If the underlying OS is build version 16299 (Windows Server version 1709), Service Fabric picks the container image tagged with Os="16299". -->
          <Image Name="sfsamples.azurecr.io/sfsamples/servicefabricbackendservice_1709" Os="16299" />
          
          <!-- An untagged container image is assumed to work across all versions of the OS and overrides the image specified in the service manifest. -->
          <Image Name="sfsamples.azurecr.io/sfsamples/servicefabricbackendservice_default" />          
        </ImageOverrides>
      </ContainerHostPolicies>
    </Policies>
  </ServiceManifestImport>

  <!-- Policies to be applied to the imported service manifest. -->
  <ServiceManifestImport>
    <ServiceManifestRef ServiceManifestName="FrontEndServicePkg" ServiceManifestVersion="1.0.0" />
    
    <!-- This enables you to provide different values for environment variables when creating a FrontEndService
         Theses environment variables are declared in the FrontEndServiceType service manifest-->
    <EnvironmentOverrides CodePackageRef="Code">
      <EnvironmentVariable Name="BackendServiceName" Value="Container.Application/BackEndService"/>
      <EnvironmentVariable Name="HttpGatewayPort" Value="19080"/>
      <EnvironmentVariable Name="IsContainer" Value="true"/>
    </EnvironmentOverrides>
    
    <!-- This policy maps the  port of the container (80) to the endpoint declared in the service, 
         FrontEndServiceTypeEndpoint which is exposed as port 80 on the host-->    
    <Policies>

      <!-- Set resource governance at the service package level. -->
      <ServicePackageResourceGovernancePolicy CpuCores="[CpuCores]" MemoryInMB="[MemoryBack]"/>

      <!-- Policies for activating container hosts. -->
      <ContainerHostPolicies CodePackageRef="Code" Isolation="process">

        <!-- Credentials for the repository hosting the container image.-->
        <RepositoryCredentials AccountName="sfsamples" Password="ENCRYPTED-PASSWORD" PasswordEncrypted="true"/>

        <!-- Binds an endpoint resource (declared in the service manifest) to the exposed container port. -->
        <PortBinding ContainerPort="80" EndpointRef="FrontEndServiceTypeEndpoint"/>

        <!-- Import a certificate into the container.  The certificate must be installed in the LocalMachine store of all the cluster nodes.
          When the application starts, the runtime reads the certificate and generates a PFX file and password (on Windows) or a PEM file (on Linux).
          The PFX file and password are accessible in the container using the Certificates_ServicePackageName_CodePackageName_CertName_PFX and 
          Certificates_ServicePackageName_CodePackageName_CertName_Password environment variables. The PEM file is accessible in the container using the 
          Certificates_ServicePackageName_CodePackageName_CertName_PEM and Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey environment variables.-->
        <CertificateRef Name="MyCert1" X509StoreName="My" X509FindValue="[CertThumbprint]" />

        <!-- If the certificate is already in PFX or PEM form, you can create a data package inside your application and reference that certificate here. -->
        <CertificateRef Name="MyCert2" DataPackageRef="Data" DataPackageVersion="1.0.0" RelativePath="MyCert2.PFX" Password="ENCRYPTED-PASSWORD" IsPasswordEncrypted="true"/>
      </ContainerHostPolicies>
    </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="FrontEndService" >
      <StatelessService ServiceTypeName="FrontEndServiceType" InstanceCount="[FrontEndService_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
        <Service Name="BackEndService" ServicePackageActivationMode="ExclusiveProcess">
      <StatelessService ServiceTypeName="BackEndServiceType" InstanceCount="[BackEndService_InstanceCount]">
        <SingletonPartition />
      </StatelessService>
    </Service>
  </DefaultServices>
</ApplicationManifest>

Manifest usługi FrontEndService

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="FrontEndServicePkg"
                 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.
         The UseImplicitHost attribute indicates this is a guest service. -->
    <StatelessServiceType ServiceTypeName="FrontEndServiceType" UseImplicitHost="true" />
  </ServiceTypes>

  <!-- Code package is your service executable. -->
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ContainerHost>
        <!--The repo and image on https://hub.docker.com or Azure Container Registry. -->
        <ImageName>sfsamples.azurecr.io/sfsamples/servicefabricfrontendservice:v1</ImageName>
      </ContainerHost>
    </EntryPoint>
    <!-- Pass environment variables to your container or exe.  These variables are overridden in the application manifest. -->
    <EnvironmentVariables>
      <EnvironmentVariable Name="BackendServiceName" Value=""/>
      <EnvironmentVariable Name="HttpGatewayPort" Value=""/>
      <EnvironmentVariable Name="IsContainer" Value=""/>
    </EnvironmentVariables>
  </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" />
  
  <!-- Data package is the contents of the Data directory under PackageRoot that contains an 
       independently-updateable and versioned static data that's consumed by the process at runtime. -->
  <DataPackage Name="Data" Version="1.0.0"/>

  <Resources>
    <Endpoints>
      <!-- This endpoint is used by the communication listener to obtain the port on which to 
           listen. For a guest executable is used to register with the NamingService at its REST endpoint
           with http scheme and port 80 -->
      <Endpoint Name="FrontEndServiceTypeEndpoint" UriScheme="http" Port="80"/>
    </Endpoints>
  </Resources>
</ServiceManifest>

Manifest usługi BackEndService

<?xml version="1.0" encoding="utf-8"?>
<ServiceManifest Name="BackEndServicePkg"
                 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.
         The UseImplicitHost attribute indicates this is a guest service. -->
    <StatelessServiceType ServiceTypeName="BackEndServiceType" UseImplicitHost="true" />
  </ServiceTypes>

  <!-- Code package is your service executable. -->
  <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
      <ContainerHost>
        <!--The repo and image on https://hub.docker.com or Azure Container Registry. -->
        <ImageName>sfsamples.azurecr.io/sfsamples/servicefabricbackendservice:v1</ImageName>
        
        <!-- Pass comma delimited commands to your container. -->
        <Commands> dotnet, myproc.dll, 5 </Commands>
      </ContainerHost>
    </EntryPoint>
    <!-- Pass environment variables to your container. These variables are overridden in the application manifest. -->
    <EnvironmentVariables>
      <EnvironmentVariable Name="IsContainer" Value="true"/>
    </EnvironmentVariables>
  </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>
      <!-- This endpoint is used by the communication listener to obtain the host port on which to 
           listen. For a guest executable is used to register with the NamingService at its REST endpoint
           with http scheme. In this case since no port is specified, one is created and assigned dynamically
           to the service. This dynamically assigned host port is mapped to the container port (8905 in this sample),
            which was specified in the application manifest.-->
      <Endpoint Name="BackEndServiceTypeEndpoint" UriScheme="http" />
    </Endpoints>
  </Resources>
</ServiceManifest>

Elementy manifestu aplikacji

ApplicationManifest, element

Deklaratywnie opisuje typ i wersję aplikacji. Do tworzenia typu aplikacji odwołuje się co najmniej jeden manifest usługi składników. Ustawienia konfiguracji usług składowych można zastąpić przy użyciu sparametryzowanych ustawień aplikacji. Domyślne usługi, szablony usług, jednostki, zasady, konfiguracja diagnostyki i certyfikaty można również zadeklarować na poziomie aplikacji. Aby uzyskać więcej informacji, zobacz ApplicationManifest, element

Parameters, element

Deklaruje parametry używane w tym manifeście aplikacji. Wartość tych parametrów można podać podczas tworzenia wystąpienia aplikacji i może służyć do zastępowania ustawień konfiguracji aplikacji lub usługi. Aby uzyskać więcej informacji, zobacz Parameters, element

Parameter — Element

Parametr aplikacji, który ma być używany w tym manifeście. Wartość parametru można zmienić podczas tworzenia wystąpienia aplikacji lub, jeśli nie podano wartości domyślnej. Aby uzyskać więcej informacji, zobacz Element parametru

ServiceManifestImport, element

Importuje manifest usługi utworzony przez dewelopera usługi. Manifest usługi musi zostać zaimportowany dla każdej usługi składowej w aplikacji. Przesłonięcia konfiguracji i zasady można zadeklarować dla manifestu usługi. Aby uzyskać więcej informacji, zobacz ServiceManifestImport, element

ServiceManifestRef, element

Importuje manifest usługi według odwołania. Obecnie plik manifestu usługi (ServiceManifest.xml) musi być obecny w pakiecie kompilacji. Aby uzyskać więcej informacji, zobacz ServiceManifestRef, element

Policies, element

Opisuje zasady (powiązanie punktu końcowego, udostępnianie pakietów, uruchamianie jako i dostęp zabezpieczeń) do zastosowania w zaimportowanym manifeście usługi. Aby uzyskać więcej informacji, zobacz Policies, element

ServicePackageResourceGovernancePolicy, element

Definiuje zasady ładu zasobów, które są stosowane na poziomie całego pakietu usługi. Aby uzyskać więcej informacji, zobacz ServicePackageResourceGovernancePolicy, element

ResourceGovernancePolicy, element

Określa limity zasobów dla pakietu kodu. Aby uzyskać więcej informacji, zobacz ResourceGovernancePolicy, element

ContainerHostPolicies, element

Określa zasady aktywowania hostów kontenerów. Aby uzyskać więcej informacji, zobacz ContainerHostPolicies, element

RepositoryCredentials, element

Poświadczenia dla repozytorium obrazów kontenera do ściągania obrazów. Aby uzyskać więcej informacji, zobacz RepositoryCredentials, element

PortBinding, element

Określa zasób punktu końcowego, który ma być powiązany z uwidoczniony port kontenera. Aby uzyskać więcej informacji, zobacz PortBinding, element

Volume, element

Określa wolumin, który ma być powiązany z kontenerem. Aby uzyskać więcej informacji, zobacz Volume, Element

DriverOption, element

Opcje sterowników do przekazania do sterownika. Aby uzyskać więcej informacji, zobacz DriverOption, element

ImageOverrides, element

Kontenery systemu Windows Server mogą nie być zgodne w różnych wersjach systemu operacyjnego. Można określić wiele obrazów systemu operacyjnego na kontener i otagować je przy użyciu wersji kompilacji systemu operacyjnego. Pobierz wersję kompilacji systemu operacyjnego, uruchamiając polecenie "winver" w wierszu polecenia systemu Windows. Jeśli podstawowy system operacyjny jest kompilacją w wersji 16299 (Windows Server w wersji 1709), usługa Service Fabric wybiera obraz kontenera oznaczony jako Os="16299". Zakłada się, że nieoznakowany obraz kontenera działa we wszystkich wersjach systemu operacyjnego i zastępuje obraz określony w manifeście usługi. Aby uzyskać więcej informacji, zobacz ImageOverrides, element

Image, element

Obraz kontenera odpowiadający numerowi wersji kompilacji systemu operacyjnego do uruchomienia. Jeśli atrybut systemu operacyjnego nie zostanie określony, zakłada się, że obraz kontenera działa we wszystkich wersjach systemu operacyjnego i zastępuje obraz określony w manifeście usługi. Aby uzyskać więcej informacji, zobacz Image, element

EnvironmentOverrides, element

Aby uzyskać więcej informacji, zobacz EnvironmentOverrides, element

EnvironmentVariable, element

Zmienna środowiskowa. Aby uzyskać więcej informacji, zobacz EnvironmentVariable, element

CertificateRef, element

Określa informacje o certyfikacie X509, który ma być uwidoczniony w środowisku kontenera. Certyfikat musi być zainstalowany w magazynie LocalMachine wszystkich węzłów klastra. Po uruchomieniu aplikacji środowisko uruchomieniowe odczytuje certyfikat i generuje plik PFX i hasło (w systemie Windows) lub plik PEM (w systemie Linux). Plik PFX i hasło są dostępne w kontenerze przy użyciu zmiennych środowiskowych Certificates_ServicePackageName_CodePackageName_CertName_PFX i Certificates_ServicePackageName_CodePackageName_CertName_Password. Plik PEM jest dostępny w kontenerze przy użyciu zmiennych środowiskowych Certificates_ServicePackageName_CodePackageName_CertName_PEM i Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey. Aby uzyskać więcej informacji, zobacz CertificateRef, element

DefaultServices, element

Deklaruje wystąpienia usługi, które są tworzone automatycznie za każdym razem, gdy aplikacja jest tworzona dla tego typu aplikacji. Aby uzyskać więcej informacji, zobacz DefaultServices, element

Service, element

Deklaruje usługę, która ma zostać utworzona automatycznie po utworzeniu wystąpienia aplikacji. Aby uzyskać więcej informacji, zobacz Service, element

StatelessService, element

Definiuje usługę bezstanową. Aby uzyskać więcej informacji, zobacz StatelessService, element

Elementy manifestu usługi FrontEndService

ServiceManifest, element

Deklaratywnie opisuje typ i wersję usługi. Zawiera on listę niezależnie uaktualnialnych kodów, konfiguracji i pakietów danych, które razem tworzą pakiet usługi w celu obsługi co najmniej jednego typu usługi. Określono również zasoby, ustawienia diagnostyczne i metadane usługi, takie jak typ usługi, właściwości kondycji i metryki równoważenia obciążenia. Aby uzyskać więcej informacji, zobacz ServiceManifest, element

ServiceTypes, element

Definiuje typy usług obsługiwane przez pakiet CodePackage w tym manifeście. Po utworzeniu wystąpienia usługi względem jednego z tych typów usług wszystkie pakiety kodu zadeklarowane w tym manifeście są aktywowane przez uruchomienie punktów wejścia. Typy usług są deklarowane na poziomie manifestu, a nie na poziomie pakietu kodu. Aby uzyskać więcej informacji, zobacz ServiceTypes, element

StatelessServiceType, element

Opisuje typ usługi bezstanowej. Aby uzyskać więcej informacji, zobacz StatelessServiceType, element

CodePackage, element

Opisuje pakiet kodu obsługujący zdefiniowany typ usługi. Po utworzeniu wystąpienia usługi względem jednego z tych typów usług wszystkie pakiety kodu zadeklarowane w tym manifeście są aktywowane przez uruchomienie punktów wejścia. Oczekuje się, że wynikowe procesy będą rejestrować obsługiwane typy usług w czasie wykonywania. Jeśli istnieje wiele pakietów kodu, wszystkie są aktywowane za każdym razem, gdy system szuka dowolnego z zadeklarowanych typów usług. Aby uzyskać więcej informacji, zobacz CodePackage, element

EntryPoint, element

Plik wykonywalny określony przez program EntryPoint jest zazwyczaj długotrwałym hostem usługi. Obecność oddzielnego punktu wejścia konfiguracji pozwala uniknąć konieczności uruchamiania hosta usługi z wysokimi uprawnieniami przez dłuższy czas. Plik wykonywalny określony przez program EntryPoint jest uruchamiany po pomyślnym zakończeniu działania SetupEntryPoint. Wynikowy proces jest monitorowany i uruchamiany ponownie (począwszy od instalatoraEntryPoint), jeśli kiedykolwiek zakończy działanie lub ulegnie awarii. Aby uzyskać więcej informacji, zobacz EntryPoint, element

ContainerHost, element

Aby uzyskać więcej informacji, zobacz ContainerHost, element

ImageName, element

Repozytorium i obraz na https://hub.docker.com komputerze lub Azure Container Registry. Aby uzyskać więcej informacji, zobacz ImageName, element

EnvironmentVariables, element

Przekaż zmienne środowiskowe do kontenera lub pliku exe. Aby uzyskać więcej informacji, zobacz EnvironmentVariables, element

EnvironmentVariable, element

Zmienna środowiskowa. Aby uzyskać więcej informacji, zobacz EnvironmentVariable, element

ConfigPackage, element

Deklaruje folder o nazwie według atrybutu Name, który zawiera plik Settings.xml. Ten plik zawiera sekcje ustawień pary klucz-wartość zdefiniowanych przez użytkownika, które proces może odczytywać w czasie wykonywania. Podczas uaktualniania, jeśli tylko wersja pakietu ConfigPackage została zmieniona, uruchomiony proces nie zostanie uruchomiony ponownie. Zamiast tego wywołanie zwrotne powiadamia proces zmiany ustawień konfiguracji, aby można było je ponownie załadować dynamicznie. Aby uzyskać więcej informacji, zobacz ConfigPackage, element

DataPackage, element

Deklaruje folder o nazwie według atrybutu Name, który zawiera pliki danych statycznych. Usługa Service Fabric będzie przetwarzać wszystkie pliki EX I DLLHOSTs określone w hoście i pakietach pomocy technicznej, gdy zostaną uaktualnione dowolne pakiety danych wymienione w manifeście usługi. Aby uzyskać więcej informacji, zobacz DataPackage, element

Resources, element

Opisuje zasoby używane przez tę usługę, które można zadeklarować bez modyfikowania skompilowanego kodu i zmieniane podczas wdrażania usługi. Dostęp do tych zasobów jest kontrolowany za pośrednictwem sekcji Podmioty zabezpieczeń i zasady manifestu aplikacji. Aby uzyskać więcej informacji, zobacz Resources, element

Endpoints, element

Definiuje punkty końcowe dla usługi. Aby uzyskać więcej informacji, zobacz Endpoints, element

Element punktu końcowego

Aby uzyskać więcej informacji, zobacz Element punktu końcowego

Elementy manifestu usługi BackEndService

ServiceManifest, element

Deklaratywnie opisuje typ i wersję usługi. Zawiera on listę niezależnie uaktualnialnych kodów, konfiguracji i pakietów danych, które razem tworzą pakiet usługi w celu obsługi co najmniej jednego typu usługi. Określono również zasoby, ustawienia diagnostyczne i metadane usługi, takie jak typ usługi, właściwości kondycji i metryki równoważenia obciążenia. Aby uzyskać więcej informacji, zobacz ServiceManifest, element

ServiceTypes, element

Definiuje typy usług obsługiwane przez pakiet CodePackage w tym manifeście. Po utworzeniu wystąpienia usługi względem jednego z tych typów usług wszystkie pakiety kodu zadeklarowane w tym manifeście są aktywowane przez uruchomienie punktów wejścia. Typy usług są deklarowane na poziomie manifestu, a nie na poziomie pakietu kodu. Aby uzyskać więcej informacji, zobacz ServiceTypes, element

StatelessServiceType, element

Opisuje typ usługi bezstanowej. Aby uzyskać więcej informacji, zobacz StatelessServiceType, element

CodePackage, element

Opisuje pakiet kodu obsługujący zdefiniowany typ usługi. Po utworzeniu wystąpienia usługi względem jednego z tych typów usług wszystkie pakiety kodu zadeklarowane w tym manifeście są aktywowane przez uruchomienie punktów wejścia. Oczekuje się, że wynikowe procesy będą rejestrować obsługiwane typy usług w czasie wykonywania. Jeśli istnieje wiele pakietów kodu, wszystkie są aktywowane za każdym razem, gdy system szuka dowolnego z zadeklarowanych typów usług. Aby uzyskać więcej informacji, zobacz CodePackage, element

EntryPoint, element

Plik wykonywalny określony przez program EntryPoint jest zazwyczaj długotrwałym hostem usługi. Obecność oddzielnego punktu wejścia konfiguracji pozwala uniknąć konieczności uruchamiania hosta usługi z wysokimi uprawnieniami przez dłuższy czas. Plik wykonywalny określony przez program EntryPoint jest uruchamiany po pomyślnym zakończeniu działania SetupEntryPoint. Wynikowy proces jest monitorowany i uruchamiany ponownie (począwszy od instalatoraEntryPoint), jeśli kiedykolwiek zakończy działanie lub ulegnie awarii. Aby uzyskać więcej informacji, zobacz EntryPoint, element

ContainerHost, element

Aby uzyskać więcej informacji, zobacz ContainerHost, element

ImageName, element

Repozytorium i obraz na https://hub.docker.com komputerze lub Azure Container Registry. Aby uzyskać więcej informacji, zobacz ImageName, element

Commands, element

Przekaż rozdzielaną przecinkami listę poleceń do kontenera. Aby uzyskać więcej informacji, zobacz Commands, element

EnvironmentVariables, element

Przekaż zmienne środowiskowe do kontenera lub pliku exe. Aby uzyskać więcej informacji, zobacz EnvironmentVariables, element

EnvironmentVariable, element

Zmienna środowiskowa. Aby uzyskać więcej informacji, zobacz EnvironmentVariable, element

ConfigPackage, element

Deklaruje folder o nazwie według atrybutu Name, który zawiera plik Settings.xml. Ten plik zawiera sekcje ustawień pary klucz-wartość zdefiniowanych przez użytkownika, które proces może odczytywać w czasie wykonywania. Podczas uaktualniania, jeśli tylko wersja pakietu ConfigPackage została zmieniona, uruchomiony proces nie zostanie uruchomiony ponownie. Zamiast tego wywołanie zwrotne powiadamia proces zmiany ustawień konfiguracji, aby można było je ponownie załadować dynamicznie. Aby uzyskać więcej informacji, zobacz ConfigPackage, element

Resources, element

Opisuje zasoby używane przez tę usługę, które można zadeklarować bez modyfikowania skompilowanego kodu i zmieniane podczas wdrażania usługi. Dostęp do tych zasobów jest kontrolowany za pośrednictwem sekcji Podmioty zabezpieczeń i zasady manifestu aplikacji. Aby uzyskać więcej informacji, zobacz Resources, element

Endpoints, element

Definiuje punkty końcowe dla usługi. Aby uzyskać więcej informacji, zobacz Endpoints, element

Element punktu końcowego

Aby uzyskać więcej informacji, zobacz Element punktu końcowego