أمثلة على ملفات بيان الخدمة والتطبيق متعدد الحاويات

فيما يلي أمثلة على بيانات التطبيق والخدمة لتطبيق Service Fabric متعدد الحاويات. الغرض من هذه الأمثلة هو إظهار الإعدادات المتاحة وكيفية استخدامها. تستند بيانات التطبيق والخدمة هذه إلى بيانات عينة حاوية Windows Server 2016.

تُعرض الميزات التالية:

البيان الميزات
بيان التطبيق تجاوز متغيرات البيئة، وتكوين تعيين الحاوية من منفذ إلى مضيف، وتكوين مصادقة سجل الحاوية، وإدارة الموارد، وتعيين وضع العزل، وتحديد صور الحاوية الخاصة ببناء نظام التشغيل
بيان خدمة FrontEndService تعيين متغيرات البيئة، وتكوين نقطة نهاية، وتمرير الأوامر إلى الحاوية، واستيراد شهادة إلى حاوية
بيان خدمة BackEndService تعيين متغيرات البيئة، وتكوين نقطة نهاية، وتكوين برنامج تشغيل وحدة التخزين

راجع عناصر بيان التطبيق وعناصر بيان خدمة FrontEndService وعناصر بيان خدمة BackEndService للحصول على مزيد من المعلومات عن عناصر XML محددة.

بيان التطبيق

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

بيان خدمة 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>

بيان خدمة 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>

عناصر بيان التطبيق

عنصر ApplicationManifest

يصف بشكل تصريحي نوع التطبيق وإصداره. تتم الإشارة إلى بيان خدمة واحد أو أكثر للخدمات التأسيسية لتكوين نوع تطبيق. يمكن تجاوز إعدادات التكوين الخاصة بالخدمات التأسيسية باستخدام إعدادات التطبيق ذات المعلمات. يمكن أيضًا الإعلان عن الخدمات الافتراضية وقوالب الخدمة والمبادئ والسياسات وإعداد التشخيص والشهادات على مستوى التطبيق. لمزيد من المعلومات، راجع عنصر ApplicationManifest

عنصر المعلمات

يعلن عن المعلمات المستخدمة في هذا البيان للتطبيق. يمكن توفير قيمة هذه المعلمات عند إنشاء مثيل للتطبيق ويمكن استخدامها لمنع إعدادات تكوين التطبيق أو الخدمة. لمزيد من المعلومات، راجع عنصر المعلمات

عنصر المعلمة

معلمة تطبيق لاستخدامها في هذا البيان. يمكن تغيير قيمة المعلمة أثناء إنشاء مثيل التطبيق، أو إذا لم تتوفر أي قيمة، تُستخدم القيمة الافتراضية. لمزيد من المعلومات، راجع عنصر المعلمة

عنصر ServiceManifestImport

يستورد بيان خدمة تم إنشاؤه بواسطة مطور الخدمة. يجب استيراد بيان الخدمة لكل خدمة مكونة في التطبيق. يمكن الإعلان عن منع التكوين والنُهج الخاصة ببيان الخدمة. لمزيد من المعلومات، راجع عنصر ServiceManifestImport

عنصر ServiceManifestRef

يستورد بيان الخدمة بالمرجع. حالياً، يجب أن يكون ملف بيان الخدمة (ServiceManifest.xml) موجوداً في حزمة الإنشاء. لمزيد من المعلومات، راجع عنصر ServiceManifestRef

عنصر النُهج

تصف النُهُج (ربط نقطة النهاية، ومشاركة الحزمة، والتشغيل كـ، ووصول الأمان) المطلوب تطبيقها على بيان الخدمة المستوردة. لمزيد من المعلومات، راجع عنصر النُهج

عنصر ServicePackageResourceGovernancePolicy

يحدد سياسة إدارة الموارد التي يتم تطبيقها على مستوى حزمة الخدمة بأكملها. لمزيد من المعلومات، راجع عنصر ServicePackageResourceGovernancePolicy

عنصر ResourceGovernancePolicy

يحدد حدود الموارد لحزمة التعليمات البرمجية. لمزيد من المعلومات، راجع عنصر ResourceGovernancePolicy

عنصر ContainerHostPolicies

يحدد نُهج تنشيط مضيفي الحاوية. لمزيد من المعلومات، راجع عنصر ContainerHostPolicies

عنصر RepositoryCredentials

بيانات اعتماد مستودع صور الحاوية لسحب الصور منه. لمزيد من المعلومات، راجع عنصر RepositoryCredentials

عنصر PortBinding

يحدد مورد نقطة النهاية لربطه بمنفذ الحاوية المكشوف. لمزيد من المعلومات، راجع عنصر PortBinding

عنصر Volume

يحدد وحدة التخزين المراد ربطها بالحاوية. لمزيد من المعلومات، راجع عنصر Volume

عنصر DriverOption

خيارات برنامج تشغيل الجهاز التي سيتم تمريرها إلى برنامج التشغيل. لمزيد من المعلومات، راجع عنصر DriverOption

عنصر ImageOverrides

قد لا تكون حاويات Windows Server متوافقة عبر إصدارات مختلفة من نظام التشغيل. يمكنك تحديد صور نظام تشغيل متعددة لكل حاوية ووضع علامة عليها باستخدام إصدارات البنية لنظام التشغيل. احصل على إصدار بنية لنظام التشغيل عن طريق تشغيل "winver" في موجه أوامر Windows. إذا كان نظام التشغيل الأساسي هو إصدار البنية 16299 (Windows Server الإصدار 1709)، يختار Service Fabric صورة الحاوية الموسومة بـOs="16299". يُفترض أن تعمل صورة الحاوية غير المميزة بعلامة عبر جميع إصدارات نظام التشغيل، وتتجاوز الصورة المحددة في بيان الخدمة. لمزيد من المعلومات، راجع عنصر ImageOverrides

عنصر Image

سيتم تشغيل صورة الحاوية المقابلة لرقم إصدار بنية نظام التشغيل. إذا لم يتم تحديد سمة نظام التشغيل، فمن المفترض أن تعمل صورة الحاوية عبر جميع إصدارات نظام التشغيل وتتجاوز الصورة المحددة في بيان الخدمة. لمزيد من المعلومات، راجع عنصر Image

عنصر EnvironmentOverrides

لمزيد من المعلومات، راجع عنصر EnvironmentOverrides

عنصر EnvironmentVariable

متغير البيئة. لمزيد من المعلومات، راجع عنصر EnvironmentVariable

عنصر CertificateRef

يحدد معلومات حول شهادة X509 التي سيتم تعريضها لبيئة الحاوية. يجب تثبيت الشهادة في مخزن LocalMachine لجميع عُقد نظام المجموعة. عند بدء تشغيل التطبيق، يقوم وقت التشغيل بقراءة الشهادة وإنشاء ملف PFX وكلمة المرور (على Windows) أو ملف PEM (على Linux). يمكن الوصول إلى ملف PFX وكلمة المرور في الحاوية باستخدام متغيرات البيئة Certificates_ServicePackageName_CodePackageName_CertName_PFX وCertificates_ServicePackageName_CodePackageName_CertName_Password. يمكن الوصول إلى ملف PEM في الحاوية باستخدام متغيرات البيئة Certificates_ServicePackageName_CodePackageName_CertName_PEM وCertificates_ServicePackageName_CodePackageName_CertName_PrivateKey. لمزيد من المعلومات، راجع عنصر CertificateRef

عنصر DefaultServices

يعلن عن مثيلات الخدمة التي يتم إنشاؤها تلقائياً كلما تم إنشاء مثيل لتطبيق مقابل هذا النوع من التطبيقات. لمزيد من المعلومات، راجع عنصر DefaultServices

عنصر Service

يعلن عن خدمة منشأة تلقائيًا عند إنشاء مثيل للتطبيق. لمزيد من المعلومات، راجع عنصر الخدمة

عنصر StatelessService

يحدد خدمة عديمة الحالة. لمزيد من المعلومات، راجع عنصر StatelessService

عناصر بيان خدمة FrontEndService

عنصر ServiceManifest

يصف بشكل تصريحي نوع الخدمة وإصدارها. يسرد التعليمة البرمجية والتكوين وحزم البيانات القابلة للترقية بشكل مستقل، والتي تؤلف معاً حزمة خدمة لدعم نوع خدمة واحد أو أكثر. تُحدد أيضاً الموارد وإعدادات التشخيص وبيانات تعريف الخدمة، مثل نوع الخدمة وخصائص الحماية ومقاييس موازنة التحميل. لمزيد من المعلومات، راجع عنصر ServiceManifest

عنصر ServiceTypes

يحدد أنواع الخدمات التي يدعمها CodePackage في هذا البيان. عند إنشاء مثيل لخدمة ما مقابل أحد أنواع هذه الخدمات، يتم تنشيط جميع حزم التعليمات البرمجية المعلنة في هذا البيان من خلال تشغيل نقاط الدخول الخاصة بهم. يتم التصريح عن أنواع الخدمة على مستوى البيان وليس على مستوى حزمة التعليمات البرمجية. لمزيد من المعلومات، راجع عنصر ServiceTypes

عنصر StatelessServiceType

يصف نوع خدمة عديمة الحالة. لمزيد من المعلومات، راجع عنصر StatelessServiceType

عنصر CodePackage

توضح حزمة تعليمات برمجية تدعم نوع خدمة محدد. عند إنشاء مثيل لخدمة ما مقابل أحد أنواع هذه الخدمات، يتم تنشيط جميع حزم التعليمات البرمجية المعلنة في هذا البيان من خلال تشغيل نقاط الدخول الخاصة بهم. من المتوقع أن تسجل العمليات الناتجة أنواع الخدمات المدعومة في وقت التشغيل. عندما تكون هناك حزم تعليمات برمجية متعددة، تُنشّط جميعا كلما بحث النظام عن أي نوع من أنواع الخدمة المعلنة. لمزيد من المعلومات، راجع عنصر CodePackage

عنصر EntryPoint

عادة ما يكون الملف التنفيذي المُحدد بواسطة EntryPoint هو مضيف خدمة التشغيل لفترة طويلة. يؤدي وجود نقطة إدخال إعداد منفصلة إلى تجنب الاضطرار إلى تشغيل مضيف الخدمة بامتيازات عالية لفترات طويلة من الزمن. يتم تشغيل الملف التنفيذي المحدد من قِبل EntryPoint بعد إنهاء SetupEntryPoint بنجاح. تتم مراقبة العملية الناتجة وإعادة تشغيلها (تبدأ مرة أخرى بـ SetupEntryPoint) إذا تم إنهاؤها أو تعطلت. لمزيد من المعلومات، راجع عنصر EntryPoint

عنصر ContainerHost

لمزيد من المعلومات، راجع عنصر ContainerHost

عنصر ImageName

المستودع والصورة في https://hub.docker.com أو Azure Container Registry. لمزيد من المعلومات، راجع عنصر ImageName

عنصر EnvironmentVariables

مرر متغيرات البيئة إلى الحاوية الخاصة بك أو exe. لمزيد من المعلومات، راجع عنصر EnvironmentVariables

عنصر EnvironmentVariable

متغير البيئة. لمزيد من المعلومات، راجع عنصر EnvironmentVariable

عنصر ConfigPackage

يعلن عن مجلد، يسمى بسمة الاسم، يحتوي على ملف Settings.xml. يحتوي هذا الملف على أقسام من إعدادات زوج قيم المفاتيح المعرفة من قِبل المستخدم التي يمكن للعملية قراءتها مرة أخرى في وقت التشغيل. أثناء الترقية، إذا تغير إصدار ConfigPackage فقط، فلن تتم إعادة تشغيل العملية قيد التشغيل. بدلاً من ذلك، يُعلم رد الاتصال العملية بأن إعدادات التكوين قد تغيرت حتى يمكن إعادة تحميلها ديناميكياً. لمزيد من المعلومات، راجع عنصر ConfigPackage

عنصر DataPackage

يعلن عن مجلد، تمت تسميته بواسطة السمة "Name"، ويحتوي على ملفات بيانات ثابتة. ستقوم Service Fabric بإعادة تدوير جميع EXEs وDLLHOSTs المحددة في المضيف وحزم الدعم عند ترقية أي من حزم البيانات المدرجة في بيان الخدمة. لمزيد من المعلومات، راجع عنصر DataPackage

عنصر الموارد

يصف الموارد التي تستخدمها هذه الخدمة، الذي يمكن الإعلان عنه دون تعديل التعليمات البرمجية المترجمة وتغييرها عند نشر الخدمة. يتحكم في الوصول إلى هذه الموارد من خلال أقسام الأساسيات والنُهج في بيان التطبيق. لمزيد من المعلومات، راجع عنصر Resources

عنصر نقاط النهاية

يحدد نقاط النهاية للخدمة. لمزيد من المعلومات، راجع عنصر نقاط النهاية

عنصر Endpoint

لمزيد من المعلومات، راجع عنصر Endpoint

عناصر بيان خدمة BackEndService

عنصر ServiceManifest

يصف بشكل تصريحي نوع الخدمة وإصدارها. يسرد التعليمة البرمجية والتكوين وحزم البيانات القابلة للترقية بشكل مستقل، والتي تؤلف معاً حزمة خدمة لدعم نوع خدمة واحد أو أكثر. تُحدد أيضاً الموارد وإعدادات التشخيص وبيانات تعريف الخدمة، مثل نوع الخدمة وخصائص الحماية ومقاييس موازنة التحميل. لمزيد من المعلومات، راجع عنصر ServiceManifest

عنصر ServiceTypes

يحدد أنواع الخدمات التي يدعمها CodePackage في هذا البيان. عند إنشاء مثيل لخدمة ما مقابل أحد أنواع هذه الخدمات، يتم تنشيط جميع حزم التعليمات البرمجية المعلنة في هذا البيان من خلال تشغيل نقاط الدخول الخاصة بهم. يتم التصريح عن أنواع الخدمة على مستوى البيان وليس على مستوى حزمة التعليمات البرمجية. لمزيد من المعلومات، راجع عنصر ServiceTypes

عنصر StatelessServiceType

يصف نوع خدمة عديمة الحالة. لمزيد من المعلومات، راجع عنصر StatelessServiceType

عنصر CodePackage

توضح حزمة تعليمات برمجية تدعم نوع خدمة محدد. عند إنشاء مثيل لخدمة ما مقابل أحد أنواع هذه الخدمات، يتم تنشيط جميع حزم التعليمات البرمجية المعلنة في هذا البيان من خلال تشغيل نقاط الدخول الخاصة بهم. من المتوقع أن تسجل العمليات الناتجة أنواع الخدمات المدعومة في وقت التشغيل. عندما تكون هناك حزم تعليمات برمجية متعددة، تُنشّط جميعا كلما بحث النظام عن أي نوع من أنواع الخدمة المعلنة. لمزيد من المعلومات، راجع عنصر CodePackage

عنصر EntryPoint

عادة ما يكون الملف التنفيذي المُحدد بواسطة EntryPoint هو مضيف خدمة التشغيل لفترة طويلة. يؤدي وجود نقطة إدخال إعداد منفصلة إلى تجنب الاضطرار إلى تشغيل مضيف الخدمة بامتيازات عالية لفترات طويلة من الزمن. يتم تشغيل الملف التنفيذي المحدد من قِبل EntryPoint بعد إنهاء SetupEntryPoint بنجاح. تتم مراقبة العملية الناتجة وإعادة تشغيلها (تبدأ مرة أخرى بـ SetupEntryPoint) إذا تم إنهاؤها أو تعطلت. لمزيد من المعلومات، راجع عنصر EntryPoint

عنصر ContainerHost

لمزيد من المعلومات، راجع عنصر ContainerHost

عنصر ImageName

المستودع والصورة في https://hub.docker.com أو Azure Container Registry. لمزيد من المعلومات، راجع عنصر ImageName

عنصر Commands

يمرر قائمة أوامر محددة بفواصل إلى الحاوية. لمزيد من المعلومات، راجع عنصر Commands

عنصر EnvironmentVariables

مرر متغيرات البيئة إلى الحاوية الخاصة بك أو exe. لمزيد من المعلومات، راجع عنصر EnvironmentVariables

عنصر EnvironmentVariable

متغير البيئة. لمزيد من المعلومات، راجع عنصر EnvironmentVariable

عنصر ConfigPackage

يعلن عن مجلد، يسمى بسمة الاسم، يحتوي على ملف Settings.xml. يحتوي هذا الملف على أقسام من إعدادات زوج قيم المفاتيح المعرفة من قِبل المستخدم التي يمكن للعملية قراءتها مرة أخرى في وقت التشغيل. أثناء الترقية، إذا تغير إصدار ConfigPackage فقط، فلن تتم إعادة تشغيل العملية قيد التشغيل. بدلاً من ذلك، يُعلم رد الاتصال العملية بأن إعدادات التكوين قد تغيرت حتى يمكن إعادة تحميلها ديناميكياً. لمزيد من المعلومات، راجع عنصر ConfigPackage

عنصر الموارد

يصف الموارد التي تستخدمها هذه الخدمة، الذي يمكن الإعلان عنه دون تعديل التعليمات البرمجية المترجمة وتغييرها عند نشر الخدمة. يتحكم في الوصول إلى هذه الموارد من خلال أقسام الأساسيات والنُهج في بيان التطبيق. لمزيد من المعلومات، راجع عنصر Resources

عنصر نقاط النهاية

يحدد نقاط النهاية للخدمة. لمزيد من المعلومات، راجع عنصر نقاط النهاية

عنصر Endpoint

لمزيد من المعلومات، راجع عنصر Endpoint