Megosztás a következőn keresztül:


A Service Fabric Reliable Services és a Reliable Actors tárolóba helyezése Windowson

A Service Fabric támogatja a Service Fabric mikroszolgáltatások (Reliable Services és Reliable Actor-alapú szolgáltatások) tárolóba helyezését. További információ: Service Fabric-tárolók.

Ez a dokumentum útmutatást nyújt a szolgáltatás Windows-tárolón belüli futtatásához.

Feljegyzés

Ez a funkció jelenleg csak Windows rendszeren működik. Tárolók futtatásához a fürtnek Windows Server 2016-on kell futnia tárolókkal.

A Service Fabric-alkalmazás tárolóba helyezésének lépései

  1. Nyissa meg a Service Fabric-alkalmazást a Visual Studióban.

  2. Osztály SFBinaryLoader.cs hozzáadása a projekthez. Az ebben az osztályban található kód egy segédeszköz, amely megfelelően betölti a Service Fabric futtatókörnyezet bináris fájljait az alkalmazásba, amikor egy tárolón belül fut.

  3. Minden tárolózandó kódcsomag esetében inicializálja a betöltőt a program belépési pontján. Adja hozzá a program belépési pontfájljához az alábbi kódrészletben látható statikus konstruktort.

    namespace MyApplication
    {
       internal static class Program
       {
           static Program()
           {
               SFBinaryLoader.Initialize();
           }
    
           /// <summary>
           /// This is the entry point of the service host process.
           /// </summary>
           private static void Main()
           {
    
  4. Készítse el és csomagolja be a projektet. Csomag létrehozásához és létrehozásához kattintson a jobb gombbal az alkalmazásprojektre Megoldáskezelő, és válassza a Csomag parancsot.

  5. Minden tárolóhoz szükséges kódcsomaghoz futtassa a CreateDockerPackage.ps1 PowerShell-szkriptet. A használat a következő:

    Teljes .NET

      $codePackagePath = 'Path to the code package to containerize.'
      $dockerPackageOutputDirectoryPath = 'Output path for the generated docker folder.'
      $applicationExeName = 'Name of the Code package executable.'
      CreateDockerPackage.ps1 -CodePackageDirectoryPath $codePackagePath -DockerPackageOutputDirectoryPath $dockerPackageOutputDirectoryPath -ApplicationExeName $applicationExeName
    

    .NET Core

      $codePackagePath = 'Path to the code package to containerize.'
      $dockerPackageOutputDirectoryPath = 'Output path for the generated docker folder.'
      $dotnetCoreDllName = 'Name of the Code package dotnet Core Dll.'
      CreateDockerPackage.ps1 -CodePackageDirectoryPath $codePackagePath -DockerPackageOutputDirectoryPath $dockerPackageOutputDirectoryPath -DotnetCoreDllName $dotnetCoreDllName
    

    A szkript létrehoz egy mappát Docker-összetevőkkel a $dockerPackageOutputDirectoryPath. Módosítsa a létrehozott Dockerfile-t bármilyen portra expose , futtassa a telepítési szkripteket és így tovább.

  6. Ezután létre kell készítenie és le kell küldenie a Docker-tárolócsomagot az adattárba.

  7. Módosítsa a ApplicationManifest.xml és a ServiceManifest.xml a tárolórendszerkép, az adattár adatai, a beállításjegyzék-hitelesítés és a port–gazdagép leképezésének hozzáadásához. A jegyzékek módosításáról az Azure Service Fabric-tárolóalkalmazás létrehozása című témakörben olvashat. A szolgáltatásjegyzék kódcsomag-definícióját a megfelelő tárolórendszerképre kell cserélni. Ügyeljen arra, hogy a EntryPointot ContainerHost típusra módosítsa.

    <!-- Code package is your service executable. -->
    <CodePackage Name="Code" Version="1.0.0">
    <EntryPoint>
     <!-- Follow this link for more information about deploying Windows containers to Service Fabric: https://aka.ms/sfguestcontainers -->
     <ContainerHost>
       <ImageName>myregistry.azurecr.io/samples/helloworldapp</ImageName>
     </ContainerHost>
    </EntryPoint>
    <!-- Pass environment variables to your container: -->
    </CodePackage>
    
  8. Adja hozzá a replikátorhoz és a szolgáltatásvégponthoz tartozó port–gazdagép megfeleltetést. Mivel mindkét portot futtatókörnyezetben rendeli hozzá a Service Fabric, a ContainerPort értéke nulla, hogy a hozzárendelt portot használja a leképezéshez.

    <Policies>
    <ContainerHostPolicies CodePackageRef="Code">
     <PortBinding ContainerPort="0" EndpointRef="ServiceEndpoint"/>
     <PortBinding ContainerPort="0" EndpointRef="ReplicatorEndpoint"/>
    </ContainerHostPolicies>
    </Policies>
    
  9. A tárolóelkülönítési mód konfigurálásához lásd : Elkülönítési mód konfigurálása. A Windows a tárolók két elkülönítési módját támogatja: a folyamatalapú és a Hyper-V módot. Az alábbi kódrészletek bemutatják, hogyan van megadva az elkülönítési mód az alkalmazásjegyzékfájlban.

    <Policies>
    <ContainerHostPolicies CodePackageRef="Code" Isolation="process">
    ...
    </ContainerHostPolicies>
    </Policies>
    
    <Policies>
    <ContainerHostPolicies CodePackageRef="Code" Isolation="hyperv">
    ...
    </ContainerHostPolicies>
    </Policies>
    

Feljegyzés

A Service Fabric-fürt tervezés szerint egyetlen bérlő, és a üzemeltetett alkalmazások megbízhatónak minősülnek. Ha nem megbízható tárolóalkalmazások üzemeltetését fontolgatja, fontolja meg a vendégtárolók üzembe helyezését, és tekintse meg a Nem megbízható alkalmazások üzemeltetése Service Fabric-fürtben című témakört.

  1. Az alkalmazás teszteléséhez üzembe kell helyeznie egy 5.7-es vagy újabb verziójú fürtön. A 6.1-s vagy újabb futtatókörnyezeti verziók esetében szerkesztenie és frissítenie kell a fürt beállításait az előzetes verziójú funkció engedélyezéséhez. A következő beállítás hozzáadásához kövesse a cikkben leírt lépéseket.

      {
        "name": "Hosting",
        "parameters": [
          {
            "name": "FabricContainerAppsEnabled",
            "value": "true"
          }
        ]
      }
    
  2. Ezután telepítse a szerkesztett alkalmazáscsomagot erre a fürtre.

Most már rendelkeznie kell egy tárolóalapú Service Fabric-alkalmazással, amely a fürtöt futtatja.

Következő lépések