- 03/10/2020
- 3 minute de citit
In acest articol
Incepand cu versiunea 7.1, Service Fabric accepta Initializer CodePackages pentru containere si aplicatii executabile pentru oaspeti. Initializatorul CodePackages ofera posibilitatea de a efectua initializari in domeniul ServicePackage inainte ca alte CodePackages sa inceapa executarea. Relatia lor cu un ServicePackage este similara cu ceea ce este un SetupEntryPoint pentru un CodePackage.
Inainte de a continua cu acest articol, va recomandam sa va familiarizati cu modelul de aplicatie Service Fabric si cu modelul de gazduire Service Fabric.
Nota
Initializer CodePackages nu sunt acceptate in prezent pentru servicii scrise utilizand modelul de programare Reliable Services.
Semantica
Se asteapta ca un Initializer CodePackage sa ruleze cu succes (cod de iesire 0) . Un Initializer CodePackage esuat este repornit pana se finalizeaza cu succes. Sunt permise mai multe pachete Code Initializer si sunt executate pana la finalizarea cu succes , secvential , intr-o ordine specificata inainte ca alte CodePackages din ServicePackage sa inceapa executarea.
Specificarea pachetelor de cod initializator
Puteti marca un CodePackage ca Initializer setand atributul Initializer la true in ServiceManifest. Cand exista mai multe Initializer CodePackages, ordinea lor de executie poate fi specificata prin intermediul atributului ExecOrder . ExecOrder trebuie sa fie un numar intreg non-negativ si este valabil numai pentru Initializer CodePackages. Initializer Code Pachetele cu valori mai mici ale ExecOrder sunt executate mai intai. Daca ExecOrder nu este specificat pentru un Initializer CodePackage, se presupune o valoare implicita 0. Ordinea relativa de executie a Initializer CodePackages cu aceeasi valoare a ExecOrder nu este specificata.
Urmatorul fragment ServiceManifest descrie trei pachete Code dintre care doua sunt marcate ca initializatoare. Cand acest ServicePackage este activat, InitCodePackage0 este executat mai intai, deoarece are cea mai mica valoare ExecOrder . La finalizarea cu succes (cod de iesire 0) a InitCodePackage0 , InitCodePackage1 este executat. In cele din urma, la finalizarea cu succes a InitCodePackage1 , WorkloadCodePackage este executat.
<CodePackage Name = “InitCodePackage0” Version = “1.0” Initializer = “true” ExecOrder = “0”> … </CodePackage> <CodePackage Name = “InitCodePackage1” Version = “1.0” Initializer = “true” ExecOrder = ” 1 “> … </CodePackage> <CodePackage Name =” WorkloadCodePackage “Version =” 1.0 “> … </CodePackage>
Exemplu complet folosind Initializer CodePackages
Sa vedem un exemplu complet folosind Initializer CodePackages.
Urmatorul ServiceManifest.xml se bazeaza pe fragmentul ServiceManifest descris anterior. InitCodePackage0 , InitCodePackage1 si WorkloadCodePackage sunt CodePackages care reprezinta containere.
porno retro maduras porno casadas españolas
www.maduras.con anal interacial
videos ponos anal maduras españolas
corriendose dentro vieja gorda follando
porno abuelas españolas compilacion mamadas
le pilla pajeandose pilladas de torbes
culos gordos hombres pajeandose
porno fuerte borracha anal
cfnmwave.com cfnmwave.com
porno gay marruecos jovencitas folladoras
porno transexual en español videos porno gay de españoles
follada real follando con las vecinas
masajes porno en español carne de mercado xxx
xxx orgias tetas bailando
intercambio parejas amateur follando en el parque
pelisxxx insesto
paja a desconocido gallega porno
maduros en pajilleros videos madres lesbianas
maduras haciendo pajas metiendo mano en el bus
follando con la abuela jovencitas españolas follando por dinero
La activare, InitCodePackage0 este executat mai intai. Inregistreaza un mesaj intr-un fisier si iese. Apoi, InitCodePackage1 este executat, care inregistreaza si un mesaj intr-un fisier si iese. In cele din urma, WorkloadCodePackage incepe executarea. De asemenea, inregistreaza un mesaj intr-un fisier, transmite continutul fisierului la stdout si apoi face ping pentru totdeauna.
<? xml version = “1.0” encoding = “UTF-8”?> <ServiceManifest Name = “WindowsInitCodePackageServicePackage” Version = “1.0” xmlns = “http://schemas.microsoft.com/2011/01/fabric” xmlns: xsi = “http://www.w3.org/2001/XMLSchema-instance”> <Description> Windows Init CodePackage Service </Description> <ServiceTypes> <StatelessServiceType ServiceTypeName = “WindowsInitCodePackageServiceType” UseImplicitHost = “true” /> </ ServiceTypes> <CodePackage Name = “InitCodePackage0” Version = “1.0” Initializer = “true” ExecOrder = “0”> <EntryPoint> <ContainerHost> <ImageName> mcr.microsoft.com/windows/nanoserver:1809 </ImageName> < Comenzi> / c, ecou Hi de la InitCodePackage0. & gt; C: \ WorkspaceOnContainer \ log.txt </Commands> <EntryPoint> cmd </EntryPoint> </ContainerHost> </EntryPoint> </CodePackage> <CodePackage Name = “InitCodePackage1” Version = “1.0” Initializer = “true” ExecOrder = ” 1 “> <EntryPoint> <ContainerHost> <ImageName> mcr.microsoft.com/windows/nanoserver:1809 </ImageName> <Commands> / c, echo Hi din InitCodePackage1. & gt; & gt; C: \ WorkspaceOnContainer \ log.txt </Commands> <EntryPoint> cmd </EntryPoint> </ContainerHost> </EntryPoint> </CodePackage> <CodePackage Name = “WorkloadCodePackage” Version = “1.0”> <EntryPoint> <ContainerHost > <ImageName> mcr.microsoft.com/windows/nanoserver:1809 </ImageName> <Commands> / c, ecou Buna din WorkloadCodePackage. & gt; & gt; C: \ WorkspaceOnContainer \ log.txt & amp; & amp; tastati C: \ WorkspaceOnContainer \ log.txt & amp; & amp; ping -t 127.0.0.1 & gt; nul </Commands> <EntryPoint> cmd </EntryPoint> </ContainerHost> </EntryPoint> </CodePackage> </ServiceManifest>
Urmatorul ApplicationManifest.xml descrie o aplicatie bazata pe ServiceManifest.xml discutat mai sus. Retineti ca specifica aceeasi montare de volum pentru toate containerele, adica C: \ WorkspaceOnHost este montat la C: \ WorkspaceOnContainer pe toate cele trei containere. Efectul net este ca toate containerele scriu in acelasi fisier jurnal in ordinea in care sunt activate.
<? xml version = “1.0” encoding = “UTF-8”?> <ApplicationManifest ApplicationTypeName = “WindowsInitCodePackageApplicationType” ApplicationTypeVersion = “1.0” xmlns = “http://schemas.microsoft.com/2011/01/fabric” xmlns: xsi = “http://www.w3.org/2001/XMLSchema-instance”> <Description> Windows Init CodePackage Application </Description> <ServiceManifestImport> <ServiceManifestRef ServiceManifestName = “WindowsInitCodePackageServicePackage” ServiceManifestVersion = “1.0” > <ContainerHostPolicies CodePackageRef = “InitCodePackage0” ContainersRetentionCount = “2” RunInteractive = “true”> <Volume Source = “C: \ WorkspaceOnHost” Destination = “C: \ WorkspaceOnContainer” IsReadOnly = “false”/> </ContainerHostPolicies> <ContainerHostPolicies CodePackageRef = “InitCodePackage1” ContainersRetentionCount = “2” RunInteractive = “true”> <Volume Source = “C: \ WorkspaceOnHost” Destination = “C: \ WorkspaceOnContainer” IsReadOnly / ContainerHostPolicies> <ContainerHostPolicies CodePackageRef = “WorkloadCodePackage” ContainersRetentionCount = “2” RunInteractive = “true”> <Volume Source = “C: \ WorkspaceOnHost” Destination = “C: \ WorkspaceOnContainer” IsReadOnly = “false” </Policies> </ServiceManifestImport> <DefaultServices> <Service Name = “WindowsInitCodePackageService” ServicePackageActivationMode = “ExclusiveProcess”> <StatelessService ServiceTypeName = “WindowsInitCodePackageServiceType” InstanceCount = “1”> <SingletonPartition /> </StatelessService> </Service> </DefaultServices> </ApplicationManifest>
Odata ce ServicePackage a fost activat cu succes, continutul C: \ WorkspaceOnHost \ log.txt ar trebui sa fie urmatorul.
C: \ Users \ test> tastati C: \ WorkspaceOnHost \ log.txt Buna din InitCodePackage0. Buna de la InitCodePackage1. Buna ziua de la WorkloadCodePackage.
Pasii urmatori
Consultati articolele urmatoare pentru informatii conexe.
- Service Fabric si containere.
- Service Fabric si executabile pentru oaspeti.








