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
Nyissa meg a Service Fabric-alkalmazást a Visual Studióban.
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.
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() {
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.
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.Ezután létre kell készítenie és le kell küldenie a Docker-tárolócsomagot az adattárba.
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>
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>
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.
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" } ] }
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
- További információk a tárolók futtatásáról a Service Fabricban.
- További információk a Service Fabric alkalmazásainak élettartamáról.