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


Service Fabric-alkalmazás frissítése a PowerShell használatával


A leggyakrabban használt és javasolt frissítési megközelítés a figyelt működés közbeni frissítés. Az Azure Service Fabric az állapotszabályzatok alapján figyeli a frissíteni készülő alkalmazás állapotát. A frissítési tartomány (UD) frissítése után a Service Fabric kiértékeli az alkalmazás állapotát, és továbblép a következő frissítési tartományra, vagy az állapotszabályzatoktól függően meghiúsul a frissítés.

A figyelt alkalmazásfrissítés a felügyelt vagy natív API-k, a PowerShell, az Azure CLI, a Java vagy a REST használatával végezhető el. A Visual Studio használatával történő frissítés végrehajtásával kapcsolatos utasításokért lásd : Alkalmazás frissítése a Visual Studióval.

A Service Fabric figyelt működés közbeni frissítéseivel az alkalmazás rendszergazdája konfigurálhatja az állapotértékelési szabályzatot, amelyet a Service Fabric használ annak megállapítására, hogy az alkalmazás kifogástalan-e. Emellett a rendszergazda konfigurálhatja az állapotértékelés meghiúsulásakor végrehajtandó műveletet (például automatikus visszaállítást hajthat végre).) Ez a szakasz végigvezeti a PowerShellt használó SDK-minták egyikének figyelt frissítésén.

Ezen az oldalon talál egy oktatóvideót, amely az alkalmazásfrissítést is végigvezeti:

Megjegyzés

Az ApplicationParameters nem marad meg az alkalmazásfrissítések során. Az aktuális alkalmazásparaméterek megőrzése érdekében a felhasználónak először le kell szereznie a paramétereket, és át kell adnia őket a frissítési API-hívásba az alábbi módon:

$myApplication = Get-ServiceFabricApplication -ApplicationName fabric:/myApplication
$appParamCollection = $myApplication.ApplicationParameters

$applicationParameterMap = @{}
foreach ($pair in $appParamCollection)
{
    $applicationParameterMap.Add($pair.Name, $pair.Value);
}

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/myApplication -ApplicationTypeVersion 2.0.0 -ApplicationParameter $applicationParameterMap -Monitored -FailureAction Rollback

1. lépés: A Visual Objects-minta létrehozása és üzembe helyezése

Az alkalmazás létrehozásához és közzétételéhez kattintson a jobb gombbal az alkalmazásprojektre, a VisualObjectsApplication elemre, és válassza a Publish (Közzététel) parancsot. További információt a Service Fabric alkalmazásfrissítési oktatóanyagában talál. Másik lehetőségként a PowerShellt is használhatja az alkalmazás üzembe helyezéséhez.

Megjegyzés

Ahhoz, hogy bármelyik Service Fabric-parancs használható legyen a PowerShellben, először a parancsmaggal kell csatlakoznia a Connect-ServiceFabricCluster fürthöz. Hasonlóképpen feltételezzük, hogy a fürt már be van állítva a helyi gépen. Tekintse meg a Service Fabric-fejlesztési környezet beállításáról szóló cikket.

A projekt Visual Studióban történő létrehozása után a Copy-ServiceFabricApplicationPackage PowerShell-paranccsal másolhatja az alkalmazáscsomagot az ImageStore-ba. Ha helyileg szeretné ellenőrizni az alkalmazáscsomagot, használja a Test-ServiceFabricApplicationPackage parancsmagot. A következő lépés az alkalmazás regisztrálása a Service Fabric-futtatókörnyezetbe a Register-ServiceFabricApplicationType parancsmaggal. A következő lépés az alkalmazás egy példányának elindítása a New-ServiceFabricApplication parancsmag használatával. Ez a három lépés hasonló a Visual Studióban a Deploy (Üzembe helyezés ) menüelem használatához. A kiépítés befejezése után törölnie kell a másolt alkalmazáscsomagot a képtárolóból a felhasznált erőforrások csökkentése érdekében. Ha egy alkalmazástípusra már nincs szükség, a regisztrációt ugyanebből az okból kell megszüntetni. További információ: Alkalmazások üzembe helyezése és eltávolítása a PowerShell használatával .

Most már Service Fabric Explorer használatával megtekintheti a fürtöt és az alkalmazást. Az alkalmazás rendelkezik egy webszolgáltatással, amely a címsor beírásával http://localhost:8081/visualobjects navigálható az Internet Explorerben. Látnia kell néhány lebegő vizualizációs objektumot, amely mozog a képernyőn. Emellett a Get-ServiceFabricApplication használatával ellenőrizheti az alkalmazás állapotát.

2. lépés: A Visual Objects-minta frissítése

Észreveheti, hogy az 1. lépésben üzembe helyezett verzióval a vizualizációobjektumok nem forognak. Frissítsük az alkalmazást olyanra, ahol a vizualizációs objektumok is forognak.

Válassza ki a VisualObjects.ActorService projektet a VisualObjects megoldásban, és nyissa meg a StatefulVisualObjectActor.cs fájlt. A fájlban keresse meg a metódust MoveObject, megjegyzést fűzzön hozzá this.State.Move(), és oldja fel a megjegyzést this.State.Move(true). Ez a módosítás a szolgáltatás frissítése után elforgatja az objektumokat.

Emellett frissíteni kell a VisualObjects.ActorService projekt ServiceManifest.xml fájlját (a PackageRoot területen). Frissítse a CodePackage-t és a szolgáltatás verzióját 2.0-ra, valamint a ServiceManifest.xml fájl megfelelő sorait. Miután a jobb gombbal a megoldásra kattintott a jegyzékfájl módosításához, használhatja a Visual Studio Jegyzékfájlok szerkesztése lehetőséget.

A módosítások elvégzése után a jegyzékfájlnak az alábbihoz hasonlóan kell kinéznie (a kiemelt részek a módosításokat mutatják):

<ServiceManifestName="VisualObjects.ActorService" Version="2.0" xmlns="http://schemas.microsoft.com/2011/01/fabric" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance">

<CodePackageName="Code" Version="2.0">

Most a ApplicationManifest.xml fájl (amely a VisualObjects-megoldás VisualObjects-projektjében található) frissül a VisualObjects.ActorService projekt 2.0-s verziójára. Emellett az alkalmazás verziója 2.0.0.0-ra frissül az 1.0.0.0-ról. A ApplicationManifest.xml a következő kódrészlethez hasonlóan kell kinéznie:

<ApplicationManifestxmlns:xsd="https://www.w3.org/2001/XMLSchema" xmlns:xsi="https://www.w3.org/2001/XMLSchema-instance" ApplicationTypeName="VisualObjects" ApplicationTypeVersion="2.0.0.0" xmlns="http://schemas.microsoft.com/2011/01/fabric">

 <ServiceManifestRefServiceManifestName="VisualObjects.ActorService" ServiceManifestVersion="2.0" />

Most hozza létre a projektet úgy, hogy csak az ActorService projektet választja, majd a jobb gombbal a Visual Studióban a Build (Build ) lehetőséget választja. Ha az Összes újraépítése lehetőséget választja, frissítenie kell az összes projekt verzióit, mivel a kód módosult volna. Ezután csomagoljuk be a frissített alkalmazást úgy, hogy a jobb gombbal a VisualObjectsApplication elemre kattintunk, kiválasztjuk a Service Fabric menüt, és kiválasztjuk a Csomag lehetőséget. Ez a művelet létrehoz egy üzembe helyezhető alkalmazáscsomagot. A frissített alkalmazás készen áll az üzembe helyezésre.

3. lépés: Az állapotszabályzatok és a frissítési paraméterek meghatározása

Ismerkedjen meg az alkalmazásfrissítési paraméterekkel és a frissítési folyamattal , hogy jobban megismerhesse az alkalmazott frissítési paramétereket, időtúllépéseket és állapotfeltételeket. Ebben az útmutatóban a szolgáltatásállapot-értékelési feltétel az alapértelmezett (és ajánlott) értékekre van állítva, ami azt jelenti, hogy a frissítés után minden szolgáltatásnak és példánynak kifogástalan állapotúnak kell lennie.

Növeljük azonban a HealthCheckStableDuration értékét 180 másodpercre (hogy a szolgáltatások legalább 120 másodpercig kifogástalan állapotban legyenek, mielőtt a frissítés a következő frissítési tartományra lép). Az UpgradeDomainTimeout értékét is állítsa 1200 másodpercre, a UpgradeTimeout értékét pedig 3000 másodpercre.

Végül állítsuk be a UpgradeFailureAction visszaállítást is. Ez a beállítás megköveteli, hogy a Service Fabric visszaállítsa az alkalmazást az előző verzióra, ha bármilyen problémát tapasztal a frissítés során. Így a frissítés indításakor (a 4. lépésben) a következő paraméterek vannak megadva:

FailureAction = Visszaállítás

HealthCheckStableDurationSec = 180

UpgradeDomainTimeoutSec = 1200

UpgradeTimeout = 3000

4. lépés: Alkalmazás előkészítése frissítésre

Most az alkalmazás elkészült, és készen áll a frissítésre. Ha rendszergazdaként nyit meg egy PowerShell-ablakot, és beírja a Get-ServiceFabricApplication parancsot, tudnia kell, hogy az üzembe helyezett VisualObjects 1.0.0.0-s verziójáról van szó.

Az alkalmazáscsomag a következő relatív elérési út alatt található, ahol a Service Fabric SDK kibontása után a rendszer feloldja a következő lépéseket: Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug. Ebben a könyvtárban meg kell találnia egy "Package" mappát, amelyben az alkalmazáscsomag található. Ellenőrizze az időbélyegeket, és győződjön meg arról, hogy az a legújabb build (előfordulhat, hogy az elérési utakat is megfelelően módosítania kell).

Most másolja a frissített alkalmazáscsomagot a Service Fabric ImageStoreba (ahol az alkalmazáscsomagokat a Service Fabric tárolja). Az ApplicationPackagePathInImageStore paraméter tájékoztatja a Service Fabricet, hogy hol találja az alkalmazáscsomagot. A frissített alkalmazást a következő paranccsal "VisualObjects_V2" (előfordulhat, hogy újra módosítania kell az elérési utakat).

Copy-ServiceFabricApplicationPackage -ApplicationPackagePath .\Samples\Services\Stateful\VisualObjects\VisualObjects\obj\x64\Debug\Package -ApplicationPackagePathInImageStore "VisualObjects\_V2"

A következő lépés az alkalmazás regisztrálása a Service Fabricben, amely a Register-ServiceFabricApplicationType paranccsal végezhető el:

Register-ServiceFabricApplicationType -ApplicationPathInImageStore "VisualObjects\_V2"

Ha az előző parancs nem sikerül, valószínűleg az összes szolgáltatás újraépítésére van szükség. A 2. lépésben leírtak szerint előfordulhat, hogy a WebService-verziót is frissítenie kell.

Javasoljuk, hogy az alkalmazás sikeres regisztrálása után távolítsa el az alkalmazáscsomagot. Az alkalmazáscsomagok lemezképtárolóból való törlése felszabadítja a rendszererőforrásokat. A nem használt alkalmazáscsomagok megtartása lemeztárolást használ, és az alkalmazás teljesítményével kapcsolatos problémákhoz vezet.

Remove-ServiceFabricApplicationPackage -ApplicationPackagePathInImageStore "VisualObjects\_V2" -ImageStoreConnectionString fabric:ImageStore

5. lépés: Az alkalmazásfrissítés indítása

Most már mind arra vagyunk beállítva, hogy elindítsuk az alkalmazásfrissítést a Start-ServiceFabricApplicationUpgrade paranccsal:

Start-ServiceFabricApplicationUpgrade -ApplicationName fabric:/VisualObjects -ApplicationTypeVersion 2.0.0.0 -HealthCheckStableDurationSec 60 -UpgradeDomainTimeoutSec 1200 -UpgradeTimeout 3000   -FailureAction Rollback -Monitored

Az alkalmazás neve megegyezik a ApplicationManifest.xml fájlban leírt névvel. A Service Fabric ezzel a névvel azonosítja, hogy melyik alkalmazás frissül. Ha túl rövidre állítja az időtúllépéseket, előfordulhat, hogy a problémát jelző hibaüzenet jelenik meg. Tekintse meg a hibaelhárítási szakaszt, vagy növelje az időtúllépéseket.

Az alkalmazás frissítésének folytatásával figyelheti azt Service Fabric Explorer vagy a Get-ServiceFabricApplicationUpgrade PowerShell-paranccsal:

Get-ServiceFabricApplicationUpgrade fabric:/VisualObjects

Néhány perc múlva az előző PowerShell-paranccsal kapott állapotnak azt kell tartalmaznia, hogy az összes frissítési tartomány frissült (befejeződött). És azt kell tapasztalnia, hogy a böngészőablakban lévő vizuális objektumok forogni kezdtek!

Gyakorlatként megpróbálhatja frissíteni a 2-es verzióról a 3-as verzióra, vagy a 2-es verzióról az 1-es verzióra. A 2-es verzióról az 1-es verzióra való áttérés szintén frissítésnek számít. Játsszon időtúllépésekkel és állapotszabályzatokkal, hogy megismerkedjen velük. Amikor üzembe helyez egy Azure-fürtöt, a paramétereket megfelelően kell beállítani. Érdemes konzervatívan beállítani az időtúllépéseket.

Következő lépések

Az alkalmazás Visual Studio használatával történő frissítése végigvezeti a Visual Studióval végzett alkalmazásfrissítésen.

A frissítési paraméterek használatával szabályozhatja az alkalmazás frissítési módját.

Az alkalmazásfrissítések kompatibilissé tételéhez ismerje meg, hogyan használhatja az adatok szerializálását.

A speciális témakörökre hivatkozva megtudhatja, hogyan használhatja a speciális funkciókat az alkalmazás frissítése során.

Az alkalmazásfrissítések gyakori problémáinak megoldásához kövesse az alkalmazásfrissítések hibaelhárítása című témakör lépéseit.