Condividi tramite


Esempi di manifesto di applicazioni e servizi multi-contenitore

Di seguito sono riportati esempi di manifest dell'applicazione e del servizio per un'applicazione multi-contenitore di Service Fabric. Lo scopo di questi esempi è mostrare quali impostazioni sono disponibili e come usarle. Questi manifesti di applicazione e servizio si basano sui manifesti d'esempio del Container di Windows Server 2016.

Vengono illustrate le funzionalità seguenti:

Manifesto Funzionalità
Manifesto dell'applicazione eseguire l'override delle variabili di ambiente, configurare il mapping da porta a host del contenitore, configurare l'autenticazione del registro contenitori, la governance delle risorse, impostare la modalità di isolamento, specificare immagini del contenitore specifiche della compilazione del sistema operativo
Manifesto del servizio FrontEndService impostare le variabili di ambiente, configurare un endpoint, passare comandi al contenitore, importare un certificato in un contenitore
Manifesto del servizio BackEndService impostare le variabili di ambiente, configurare un endpoint, configurare il driver del volume

Per altre informazioni su elementi xml specifici, vedere Elementi manifesto del servizio Application, elementi manifesto del servizio FrontEndService e elementi manifesto del servizio BackEndService .

Manifesto dell'applicazione

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

Manifesto del servizio 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>

Manifesto del servizio 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>

Elementi del manifesto dell'applicazione

Elemento ApplicationManifest

Descrive in modo dichiarativo il tipo e la versione dell'applicazione. Viene fatto riferimento a uno o più manifesti di servizio dei servizi costitutivi per comporre un tipo di applicazione. È possibile eseguire l'override delle impostazioni di configurazione dei servizi costitutivi usando le impostazioni dell'applicazione con parametri. I servizi predefiniti, i modelli di servizio, le entità, i criteri, la configurazione della diagnostica e i certificati possono anche essere dichiarati a livello di applicazione. Per ulteriori informazioni, vedere l'elemento ApplicationManifest

Elemento Parametri

Dichiara i parametri usati in questo manifesto dell'applicazione. Il valore di questi parametri può essere fornito quando viene creata un'istanza dell'applicazione e può essere usato per eseguire l'override delle impostazioni di configurazione dell'applicazione o del servizio. Per ulteriori informazioni, vedere Parameters Element

Parametro elemento

Parametro dell'applicazione da usare in questo manifesto. Il valore del parametro può essere modificato durante la creazione di istanze dell'applicazione oppure, se non viene specificato alcun valore, viene usato il valore predefinito. Per altre informazioni, vedere Elemento Parameter

Elemento ServiceManifestImport

Importa un manifesto del servizio creato dallo sviluppatore del servizio. È necessario importare un manifesto del servizio per ogni servizio costitutivo nell'applicazione. Le modifiche di configurazione e le politiche possono essere dichiarate per il manifesto del servizio. Per altre informazioni, vedere Elemento ServiceManifestImport

Elemento ServiceManifestRef

Importa il manifesto del servizio tramite riferimento. Attualmente il file manifesto del servizio (ServiceManifest.xml) deve essere presente nel pacchetto di compilazione. Per altre informazioni, vedere Elemento ServiceManifestRef

Elemento Politiche

Descrive i criteri (associazione dell'endpoint, condivisione di pacchetti, run-as e accesso di sicurezza) da applicare al manifesto del servizio importato. Per altre informazioni, vedere Elemento Politiche

Elemento di Governance delle Risorse del Pacchetto di Servizi

Definisce i criteri di governance delle risorse applicati al livello dell'intero pacchetto del servizio. Per ulteriori informazioni, vedere Elemento ServicePackageResourceGovernancePolicy

Elemento Politica di Gestione delle Risorse

Specifica i limiti delle risorse per un pacchetto di codice. Per altre informazioni, vedere Elemento di Policy per la Gestione delle Risorse

Elemento ContainerHostPolicies

Specifica i criteri per l'attivazione degli host contenitore. Per ulteriori informazioni, consultare Elemento ContainerHostPolicies

Elemento RepositoryCredentials

Credenziali per il repository di immagini del contenitore da cui eseguire il pull delle immagini. Per altre informazioni, vedere Elemento RepositoryCredentials

Elemento PortBinding

Specifica la risorsa endpoint da associare alla porta del contenitore esposta. Per altre informazioni, vedere Elemento PortBinding

Elemento di Volume

Specifica il volume da associare al contenitore. Per altre informazioni, vedere Elemento Volume

Elemento DriverOption

Opzioni del driver da trasmettere al driver. Per altre informazioni, vedere Elemento DriverOption

Elemento ImageOverrides

I contenitori di Windows Server potrebbero non essere compatibili tra versioni diverse del sistema operativo. È possibile specificare più immagini del sistema operativo per ogni contenitore e contrassegnarle con le versioni di compilazione del sistema operativo. Ottenere la versione di compilazione del sistema operativo eseguendo "winver" al prompt dei comandi di Windows. Se il sistema operativo sottostante è la versione 16299 (Windows Server versione 1709), Service Fabric seleziona l'immagine del contenitore contrassegnata con Os="16299". Si presuppone che un'immagine del contenitore senza tag funzioni in tutte le versioni del sistema operativo ed esegue l'override dell'immagine specificata nel manifesto del servizio. Per altre informazioni, vedere Elemento ImageOverrides

Elemento Image

Immagine del contenitore corrispondente al numero di versione della build del sistema operativo da avviare. Se l'attributo del sistema operativo non viene specificato, si presuppone che l'immagine del contenitore funzioni in tutte le versioni del sistema operativo ed esegue l'override dell'immagine specificata nel manifesto del servizio. Per altre informazioni, vedere Elemento Image

Elemento EnvironmentOverrides

Per ulteriori dettagli, vedere Elemento EnvironmentOverrides

Elemento VariabileAmbiente

Variabile di ambiente. Per ulteriori informazioni, vedere EnvironmentVariable Element

Elemento CertificateRef

Specifica informazioni su un certificato X509 che deve essere esposto all'ambiente contenitore. Il certificato deve essere installato nell'archivio LocalMachine di tutti i nodi del cluster. All'avvio dell'applicazione, il runtime legge il certificato e genera un file PFX e una password (in Windows) o un file PEM (in Linux). Il file PFX e la password sono accessibili nel contenitore usando le variabili di ambiente Certificates_ServicePackageName_CodePackageName_CertName_PFX e Certificates_ServicePackageName_CodePackageName_CertName_Password. Il file PEM è accessibile nel contenitore usando le variabili di ambiente Certificates_ServicePackageName_CodePackageName_CertName_PEM e Certificates_ServicePackageName_CodePackageName_CertName_PrivateKey. Per altre informazioni, vedere Elemento CertificateRef

Elemento DefaultServices

Dichiara le istanze del servizio che vengono automaticamente create ogni volta che un'applicazione viene istanziata in relazione a questo tipo di applicazione. Per ulteriori informazioni, vedere Elemento DefaultServices

Elemento di Servizio

Dichiara un servizio da creare automaticamente al momento dell'istanza dell'applicazione. Per ulteriori informazioni, vedere Elemento Servizio

Elemento StatelessService

Definisce un servizio senza stato. Per maggiori dettagli, consultare Elemento StatelessService

Elementi manifesto del servizio FrontEndService

Elemento ServiceManifest

Descrive in modo dichiarativo il tipo di servizio e la versione. Elenca il codice, la configurazione e i pacchetti di dati aggiornabili indipendentemente che insieme compongono un pacchetto di servizio per supportare uno o più tipi di servizio. Vengono specificate anche risorse, impostazioni di diagnostica e metadati del servizio, ad esempio il tipo di servizio, le proprietà di integrità e le metriche di bilanciamento del carico. Per altre informazioni, vedere Elemento ServiceManifest

Elemento "ServiceTypes"

Definisce i tipi di servizio supportati da un CodePackage in questo manifesto. Quando viene creata un'istanza di un servizio sulla base di uno di questi tipi di servizi, tutti i pacchetti di codice dichiarati nel manifesto vengono attivati eseguendo i relativi punti di ingresso. I tipi di servizi sono dichiarati a livello di manifesto e non a livello di pacchetto di codice. Per altre informazioni, vedere Elemento ServiceTypes

Elemento StatelessServiceType

Descrive un tipo di servizio senza stato. Per altre informazioni, vedere Elemento StatelessServiceType

Elemento CodePackage

Descrive un pacchetto di codice che supporta un tipo di servizio definito. Quando viene creata un'istanza di un servizio sulla base di uno di questi tipi di servizi, tutti i pacchetti di codice dichiarati nel manifesto vengono attivati eseguendo i relativi punti di ingresso. I processi risultanti devono registrare i tipi di servizi supportati in fase di esecuzione. Quando sono presenti più pacchetti di codice, vengono tutti attivati ogni volta che il sistema cerca uno dei tipi di servizio dichiarati. Per altre informazioni, vedere Elemento CodePackage

Elemento EntryPoint

L'eseguibile specificato da EntryPoint è in genere l'host del servizio a esecuzione prolungata. La presenza di un punto di ingresso di configurazione separato consente di evitare di dover eseguire l'host del servizio con privilegi elevati per lunghi periodi di tempo. L'eseguibile specificato da EntryPoint viene eseguito dopo che SetupEntryPoint termina con successo. Il processo risultante viene monitorato e riavviato (a partire da SetupEntryPoint) se termina o si arresta in modo anomalo. Per altre informazioni, vedere Elemento EntryPoint

Elemento ContainerHost

Per altre informazioni, vedere Elemento ContainerHost

Elemento ImageName

Repository e immagine su https://hub.docker.com o Registro dei contenitori di Azure. Per altre informazioni, vedere Elemento ImageName

Elemento EnvironmentVariables

Passare le variabili di ambiente al contenitore o all'exe. Per ulteriori informazioni, consultare l'elemento EnvironmentVariables

Elemento Variabile Ambiente

Variabile di ambiente. Per ulteriori informazioni, vedere Elemento Variabile d'Ambiente

Elemento ConfigPackage

Dichiara una cartella denominata dall'attributo Name che contiene un file Settings.xml. Questo file contiene sezioni di impostazioni di coppia chiave-valore definite dall'utente che il processo può leggere in fase di esecuzione. Durante un aggiornamento, se è stata modificata solo la versione di ConfigPackage, il processo in esecuzione non viene riavviato. Un callback piuttosto notifica al processo che le impostazioni di configurazione sono cambiate affinché vengano ricaricate in modo dinamico. Per altre informazioni, vedere Elemento ConfigPackage

Elemento DataPackage

Dichiara una cartella denominata dall'attributo Name, che contiene file di dati statici. Service Fabric riciclerà tutti gli EXEs e dllHOST specificati nell'host e i pacchetti di supporto quando uno dei pacchetti di dati elencati nel manifesto del servizio viene aggiornato. Per altre informazioni, vedere Elemento DataPackage

Elemento delle Risorse

Descrive le risorse usate da questo servizio, che possono essere dichiarate senza modificare il codice compilato e modificate quando il servizio viene distribuito. L'accesso a queste risorse viene controllato tramite le sezioni Entità e Criteri del manifesto dell'applicazione. Per ulteriori informazioni, vedere Elemento Risorse

Elemento Punti di terminazione

Definisce gli endpoint per il servizio. Per ulteriori informazioni, consultare Elemento Endpoints

Elemento Endpoint

Per altre informazioni, vedere Elemento Endpoint

Elementi manifesto del servizio BackEndService

Elemento ServiceManifest

Descrive in modo dichiarativo il tipo di servizio e la versione. Elenca il codice, la configurazione e i pacchetti di dati aggiornabili indipendentemente che insieme compongono un pacchetto di servizio per supportare uno o più tipi di servizio. Vengono specificate anche risorse, impostazioni di diagnostica e metadati del servizio, ad esempio il tipo di servizio, le proprietà di integrità e le metriche di bilanciamento del carico. Per altre informazioni, vedere Elemento ServiceManifest

Elemento Tipi di Servizi

Definisce i tipi di servizio supportati da un CodePackage in questo manifesto. Quando viene creata un'istanza di un servizio sulla base di uno di questi tipi di servizi, tutti i pacchetti di codice dichiarati nel manifesto vengono attivati eseguendo i relativi punti di ingresso. I tipi di servizi sono dichiarati a livello di manifesto e non a livello di pacchetto di codice. Per altre informazioni, vedere Elemento ServiceTypes

Elemento StatelessServiceType

Descrive un tipo di servizio senza stato. Per altre informazioni, vedere Elemento StatelessServiceType

Elemento CodePackage

Descrive un pacchetto di codice che supporta un tipo di servizio definito. Quando viene creata un'istanza di un servizio sulla base di uno di questi tipi di servizi, tutti i pacchetti di codice dichiarati nel manifesto vengono attivati eseguendo i relativi punti di ingresso. I processi risultanti devono registrare i tipi di servizi supportati in fase di esecuzione. Quando sono presenti più pacchetti di codice, vengono tutti attivati ogni volta che il sistema cerca uno dei tipi di servizio dichiarati. Per altre informazioni, vedere Elemento CodePackage

Elemento EntryPoint

L'eseguibile specificato da EntryPoint è in genere l'host del servizio a esecuzione prolungata. La presenza di un punto di ingresso di configurazione separato consente di evitare di dover eseguire l'host del servizio con privilegi elevati per lunghi periodi di tempo. L'eseguibile specificato da EntryPoint viene eseguito dopo che SetupEntryPoint si chiude con successo. Il processo risultante viene monitorato e riavviato (a partire da SetupEntryPoint) se termina o si arresta in modo anomalo. Per altre informazioni, vedere Elemento EntryPoint

Elemento ContainerHost

Per altre informazioni, vedere Elemento ContainerHost

Elemento ImageName

Il repository e l'immagine su https://hub.docker.com o sul Registro immagini di Azure Container. Per altre informazioni, vedere Elemento ImageName

Elemento Comandi

Passare un elenco delimitato da virgole di comandi al contenitore. Per ulteriori informazioni, vedere l'Elemento Comandi

Elemento EnvironmentVariables

Passare le variabili di ambiente al contenitore o all'exe. Per altre informazioni, vedere Elemento EnvironmentVariables

Elemento EnvironmentVariable

Variabile di ambiente. Per ulteriori informazioni, vedere EnvironmentVariable Element

Elemento ConfigPackage

Dichiara una cartella denominata dall'attributo Name che contiene un file Settings.xml. Questo file contiene sezioni di impostazioni di coppia chiave-valore definite dall'utente che il processo può leggere in fase di esecuzione. Durante un aggiornamento, se è stata modificata solo la versione di ConfigPackage, il processo in esecuzione non viene riavviato. Un callback piuttosto notifica al processo che le impostazioni di configurazione sono cambiate affinché vengano ricaricate in modo dinamico. Per altre informazioni, vedere Elemento ConfigPackage

Elemento Risorse

Descrive le risorse usate da questo servizio, che possono essere dichiarate senza modificare il codice compilato e modificate quando il servizio viene distribuito. L'accesso a queste risorse viene controllato tramite le sezioni Entità e Criteri del manifesto dell'applicazione. Per altre informazioni, vedere Elemento Risorse

Elemento Punti di accesso

Definisce gli endpoint per il servizio. Per altre informazioni, vedere Elemento Endpoints

Punto Terminale

Per altre informazioni, vedere Elemento Endpoint