Alkalmazások üzembe helyezése számítási csomópontokon Batch-alkalmazáscsomagokkal

Az alkalmazáscsomagok leegyszerűsíthetik a Azure Batch megoldás kódját, és megkönnyítik a feladatok által futtatott alkalmazások kezelését. Az alkalmazáscsomagokkal a feladatok által futtatott alkalmazások több verzióját is feltöltheti és kezelheti, beleértve a hozzájuk tartozó fájlokat is. Ezután automatikusan üzembe helyezhet egy vagy több alkalmazást a készlet számítási csomópontjaira.

Az alkalmazáscsomagok létrehozására és kezelésére szolgáló API-k a Batch Management .NET-kódtár részét képezik. Az alkalmazáscsomagok számítási csomópontra való telepítéséhez szükséges API-k a Batch .NET-kódtár részét képezik. A más programozási nyelvekhez elérhető Batch API-k hasonló funkciókkal rendelkeznek.

Ez a cikk bemutatja, hogyan tölthet fel és kezelhet alkalmazáscsomagokat a Azure Portal. Azt is bemutatja, hogyan telepítheti őket egy készlet számítási csomópontjaira a Batch .NET-kódtárral .

Alkalmazáscsomagra vonatkozó követelmények

Az alkalmazáscsomagok használatához egy Azure Storage-fiókot kell összekapcsolnia a Batch-fiókjával.

A Batch-fiókon belüli alkalmazások és alkalmazáscsomagok száma és az alkalmazáscsomagok maximális mérete korlátozott. További információ: Batch-szolgáltatáskvóták és -korlátok.

Megjegyzés

A 2017. július 5. előtt létrehozott Batch-készletek nem támogatják az alkalmazáscsomagokat (kivéve, ha 2016. március 10. után lettek létrehozva Cloud Services Configuration használatával). Az itt ismertetett alkalmazáscsomagok funkció felülírja a szolgáltatás korábbi verzióiban elérhető Batch Apps szolgáltatást.

Alkalmazások és alkalmazáscsomagok ismertetése

A Azure Batch az alkalmazások verziószámozott bináris fájlok készletére hivatkoznak, amelyek automatikusan letölthetők a készlet számítási csomópontjaira. Az alkalmazások egy vagy több alkalmazáscsomagot tartalmaznak, amelyek az alkalmazás különböző verzióit képviselik.

Minden alkalmazáscsomag egy .zip fájl, amely tartalmazza az alkalmazás bináris fájljait és a támogató fájlokat. Csak a .zip formátum támogatott.

Az alkalmazások és alkalmazáscsomagok magas szintű nézetét bemutató ábra.

Az alkalmazáscsomagokat a készlet vagy a feladat szintjén adhatja meg.

  • A készletalkalmazás-csomagok a készlet minden csomópontjára üzembe lesznek helyezve. Az alkalmazások akkor lesznek üzembe helyezve, amikor egy csomópont csatlakozik egy készlethez, és amikor újraindul vagy újraindul.

    A készletalkalmazás-csomagok akkor megfelelőek, ha egy készlet összes csomópontja futtatja egy feladat feladatait. Készlet létrehozásakor megadhat egy vagy több üzembe helyezendő alkalmazáscsomagot. Meglévő készlet csomagjait is hozzáadhatja vagy frissítheti. Ha új csomagot szeretne telepíteni egy meglévő készletbe, újra kell indítania a csomópontjait.

  • A feladatalkalmazás-csomagok csak egy tevékenység futtatására ütemezett számítási csomóponton vannak üzembe helyezve, közvetlenül a feladat parancssorának futtatása előtt. Ha a megadott alkalmazáscsomag és -verzió már megtalálható a csomóponton, a rendszer nem helyezi újra üzembe, és a meglévő csomagot használja.

    A feladatalkalmazás-csomagok olyan megosztott készletű környezetekben hasznosak, ahol különböző feladatok futnak egy készleten, és a készlet nem törlődik a feladat befejezésekor. Ha a feladat kevesebb feladattal rendelkezik, mint a készletben lévő csomópontok, a feladatalkalmazás-csomagok minimalizálhatják az adatátvitelt, mivel az alkalmazás csak a tevékenységeket futtató csomópontokon van üzembe helyezve.

    A feladatalkalmazás-csomagok előnyeire más forgatókönyvek is megoldást jelenthetnek, ha egy nagy alkalmazást futtatnak, de csak néhány tevékenységhez. A feladatalkalmazások például hasznosak lehetnek egy nehéz előfeldolgozási fázishoz vagy egy egyesítési feladathoz.

Az alkalmazáscsomagok esetében a készlet indítási feladatának nem kell megadnia a csomópontokra telepítendő egyes erőforrásfájlok hosszú listáját. Nem kell manuálisan kezelnie az alkalmazásfájlok több verzióját az Azure Storage-ban vagy a csomópontokon. És nem kell aggódnia sas URL-címek létrehozása miatt, hogy hozzáférést biztosítson az Azure Storage-fiókjában lévő fájlokhoz. A Batch a háttérben az Azure Storage-ral együttműködve tárolja az alkalmazáscsomagokat, és üzembe helyezi őket a számítási csomópontokon.

Megjegyzés

Az indítási tevékenység teljes méretének 32 768 karakternél rövidebbnek vagy egyenlőnek kell lennie, beleértve az erőforrásfájlokat és a környezeti változókat is. Ha az indítási feladat túllépi ezt a korlátot, az alkalmazáscsomagok használata egy másik lehetőség. Létrehozhat egy .zip fájlt is, amely tartalmazza az erőforrásfájlokat, feltöltheti a fájlt blobként az Azure Storage-ba, majd kicsomagolhatja azt az indítási feladat parancssorából.

Alkalmazások feltöltése és kezelése

A Batch-fiókban lévő alkalmazáscsomagok kezeléséhez használhatja a Azure Portal vagy a Batch Management API-kat. A következő szakaszok ismertetik, hogyan kapcsolhat össze egy tárfiókot, és megtudhatja, hogyan adhat hozzá és kezelhet alkalmazásokat és alkalmazáscsomagokat a Azure Portal.

Megjegyzés

Bár egy ARM-sablonMicrosoft.Batch/batchAccounts erőforrásában definiálhat alkalmazásértékeket, jelenleg nem lehet ARM-sablont használni a Batch-fiókban használandó alkalmazáscsomagok feltöltéséhez. Ezeket fel kell töltenie a csatolt tárfiókba az Új alkalmazás hozzáadása című cikkben leírtak szerint.

Az alkalmazáscsomagok használatához egy Azure Storage-fiókot kell összekapcsolnia a Batch-fiókjával. A Batch szolgáltatás a társított tárfiókot használja az alkalmazáscsomagok tárolására. Ideális esetben kifejezetten a Batch-fiókkal való használatra érdemes létrehoznia egy tárfiókot.

Ha még nem konfigurált tárfiókot, a Azure Portal figyelmeztetést jelenít meg, amikor először választja ki az Alkalmazások lehetőséget a Batch-fiók bal oldali navigációs menüjében. A tárfiók és a Batch-fiók összekapcsolásához:

  1. Válassza a Figyelmeztetés ablakot, amely a következőt tartalmazza: "Nincs konfigurálva tárfiók ehhez a batch-fiókhoz".
  2. Ezután válassza a Tárfiókkészlet... lehetőséget a következő lapon.
  3. Válassza a Tárfiók kiválasztása hivatkozást a Tárfiók adatai szakaszban.
  4. Válassza ki az ezzel a batch-fiókkal használni kívánt tárfiókot a Tárfiók kiválasztása panel listájában.
  5. Ezután válassza a Lap bal felső sarkában található Mentés lehetőséget.

A két fiók összekapcsolása után a Batch automatikusan üzembe helyezheti a csatolt Storage-fiókban tárolt csomagokat a számítási csomópontokon.

Fontos

Az alkalmazáscsomagok nem használhatók tűzfalszabályokkal konfigurált Azure Storage-fiókokkal vagy engedélyezetthierarchikus névtérrel.

A Batch szolgáltatás az Azure Storage használatával tárolja az alkalmazáscsomagokat blokkblobokként. A blokkblobadatokért a szokásos módon kell fizetnie , és az egyes csomagok mérete nem haladhatja meg a blokkblob maximális méretét. További információ: A Blob Storage méretezhetőségi és teljesítménycéljai. A költségek minimalizálása érdekében vegye figyelembe az alkalmazáscsomagok méretét és számát, és rendszeresen távolítsa el az elavult csomagokat.

Új alkalmazás hozzáadása

Új alkalmazás létrehozásához adjon hozzá egy alkalmazáscsomagot, és adjon meg egy egyedi alkalmazásazonosítót.

A Batch-fiókban válassza az Alkalmazások lehetőséget a bal oldali navigációs menüben, majd válassza a Hozzáadás lehetőséget.

Képernyőkép az új alkalmazás-létrehozási folyamatról a Azure Portal.

Adja meg a következő információkat:

  • Alkalmazásazonosító: Az új alkalmazás azonosítója.
  • Verzió: A feltölteni kívánt alkalmazáscsomag verziója.
  • Alkalmazáscsomag: Az alkalmazás futtatásához szükséges bináris fájlokat és támogató fájlokat tartalmazó .zip fájl.

A megadott alkalmazásazonosítónak és verziónak az alábbi követelményeknek kell megfelelnie:

  • Windows-csomópontokon az azonosító alfanumerikus karakterek, kötőjelek és aláhúzásjelek bármilyen kombinációját tartalmazhatja. Linux-csomópontokon csak alfanumerikus karakterek és aláhúzásjelek engedélyezettek.
  • Legfeljebb 64 karakterből állhat.
  • A Batch-fiókon belül egyedinek kell lennie.
  • Az azonosítók kis- és nagybetűket nem különböztetnek meg.

Ha elkészült, válassza a Küldés lehetőséget. Miután feltöltötte az .zip fájlt az Azure Storage-fiókjába, a portál értesítést jelenít meg. A feltöltendő fájl méretétől és a hálózati kapcsolat sebességétől függően ez a folyamat eltarthat egy ideig.

Aktuális alkalmazások megtekintése

A Batch-fiókban lévő alkalmazások megtekintéséhez válassza a bal oldali navigációs menü Alkalmazások elemét.

Képernyőkép a Azure Portal Alkalmazások menüeleméről.

Ha ezt a menüt választja, megnyílik az Alkalmazások ablak. Ez az ablak megjeleníti a fiókban lévő alkalmazások azonosítóját és a következő tulajdonságokat:

  • Csomagok: Az alkalmazáshoz társított verziók száma.
  • Alapértelmezett verzió: Ha lehetséges, a telepített alkalmazásverzió, ha nincs megadva verzió az alkalmazás telepítésekor.
  • Frissítések engedélyezése: Meghatározza, hogy engedélyezve vannak-e a csomagfrissítések és -törlések.

Ha meg szeretné tekinteni az alkalmazáscsomag fájlstruktúráját egy számítási csomóponton, lépjen a Batch-fiókhoz a Azure Portal. Válassza a Készletek lehetőséget. Ezután válassza ki a számítási csomópontot tartalmazó készletet. Válassza ki azt a számítási csomópontot, amelyre az alkalmazáscsomag telepítve van, és nyissa meg az alkalmazások mappát.

Alkalmazás részleteinek megtekintése

Egy alkalmazás részleteinek megtekintéséhez jelölje ki azt az Alkalmazások ablakban. Az alkalmazást a bal oldali navigációs menü Beállítások elemével konfigurálhatja.

  • Frissítések engedélyezése: Azt jelzi, hogy az alkalmazáscsomagok frissíthetők vagy törölhetők-e. Az alapértelmezett érték az Igen. Ha a Nem értékre van állítva, a meglévő alkalmazáscsomagok nem frissíthetők vagy törölhetők, de az alkalmazáscsomagok új verziói továbbra is hozzáadhatók.
  • Alapértelmezett verzió: Az alkalmazás üzembe helyezésekor használni kívánt alapértelmezett alkalmazáscsomag, ha nincs megadva verzió.
  • Megjelenítendő név: Egy rövid név, amelyet a Batch-megoldás az alkalmazással kapcsolatos információk megjelenítésekor használhat. Ez a név használható például egy olyan szolgáltatás felhasználói felületén, amelyet a Batch használatával biztosít ügyfeleinek.

Új alkalmazáscsomag hozzáadása

Ha alkalmazáscsomag-verziót szeretne hozzáadni egy meglévő alkalmazáshoz, válassza ki az alkalmazást a Batch-fiók Alkalmazások lapján. Ezután válassza a Hozzáadás elemet.

Az új alkalmazáshoz hasonlóan adja meg az új csomag verziószámát , töltse fel a .zip fájlt az Alkalmazáscsomag mezőbe, majd válassza a Küldés lehetőséget.

Alkalmazáscsomag frissítése vagy törlése

Meglévő alkalmazáscsomag frissítéséhez vagy törléséhez válassza ki az alkalmazást a Batch-fiók Alkalmazások lapján. Jelölje ki a módosítani kívánt alkalmazáscsomag sorában található három pontot. Ezután válassza ki a végrehajtani kívánt műveletet.

Képernyőkép az alkalmazáscsomagok frissítési és törlési beállításairól a Azure Portal.

Ha a Frissítés lehetőséget választja, feltölthet egy új .zip fájlt. Ez a fájl lecseréli az előző .zip fájlt, amelyet az adott verzióhoz töltött fel.

Ha a Törlés lehetőséget választja, a rendszer kérni fogja, hogy erősítse meg az adott verzió törlését. Az OK gomb kiválasztása után a Batch törli a .zip fájlt az Azure Storage-fiókjából. Ha törli az alkalmazás alapértelmezett verzióját, az alkalmazás alapértelmezett verzióbeállítása törlődik.

Alkalmazások telepítése számítási csomópontokra

Megtanulta, hogyan kezelheti az alkalmazáscsomagokat a Azure Portal. Most megtudhatja, hogyan helyezheti üzembe őket a számítási csomópontokon, és hogyan futtathatja őket Batch-feladatokkal.

Készletalkalmazás-csomagok telepítése

Ha egy alkalmazáscsomagot egy készlet összes számítási csomópontjára szeretne telepíteni, adjon meg egy vagy több alkalmazáscsomag-hivatkozást a készlethez. A készlethez megadott alkalmazáscsomagok minden olyan számítási csomópontra települnek, amely csatlakozik a készlethez, valamint minden újraindult vagy újragondolt csomópontra.

A Batch .NET-ben adjon meg egy vagy több CloudPool.ApplicationPackageReferences értéket új készlet létrehozásakor vagy meglévő készlet használatakor. Az ApplicationPackageReference osztály egy alkalmazásazonosítót és -verziót határoz meg, amely a készlet számítási csomópontjaira telepíthető.

// Create the unbound CloudPool
CloudPool myCloudPool =
    batchClient.PoolOperations.CreatePool(
        poolId: "myPool",
        targetDedicatedComputeNodes: 1,
        virtualMachineSize: "standard_d1_v2",
        VirtualMachineConfiguration: new VirtualMachineConfiguration(
            imageReference: new ImageReference(
                                publisher: "MicrosoftWindowsServer",
                                offer: "WindowsServer",
                                sku: "2019-datacenter-core",
                                version: "latest"),
            nodeAgentSkuId: "batch.node.windows amd64");

// Specify the application and version to install on the compute nodes
myCloudPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "litware",
        Version = "1.1001.2b" }
};

// Commit the pool so that it's created in the Batch service. As the nodes join
// the pool, the specified application package is installed on each.
await myCloudPool.CommitAsync();

Fontos

Ha egy alkalmazáscsomag üzembe helyezése sikertelen, a Batch szolgáltatás nem használhatóként jelöli meg a csomópontot, és nincs ütemezve végrehajtásra az adott csomóponton. Ha ez történik, indítsa újra a csomópontot a csomag üzembe helyezésének újraindulásához. A csomópont újraindítása a feladatütemezést is lehetővé teszi a csomóponton.

Feladatalkalmazás-csomagok telepítése

A készlethez hasonlóan alkalmazáscsomag-referenciákat is megadhat egy tevékenységhez. Amikor egy tevékenység egy csomóponton való futtatására van ütemezve, a rendszer közvetlenül a feladat parancssorának futtatása előtt tölti le és nyeri ki a csomagot. Ha egy adott csomag és verzió már telepítve van a csomóponton, a rendszer nem tölti le a csomagot, és a meglévő csomagot használja.

Feladatalkalmazás-csomag telepítéséhez konfigurálja a feladat CloudTask.ApplicationPackageReferences tulajdonságát:

CloudTask task =
    new CloudTask(
        "litwaretask001",
        "cmd /c %AZ_BATCH_APP_PACKAGE_LITWARE%\\litware.exe -args -here");

task.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference
    {
        ApplicationId = "litware",
        Version = "1.1001.2b"
    }
};

A telepített alkalmazások végrehajtása

A készlethez vagy feladathoz megadott csomagokat a rendszer letölti és kinyeri a AZ_BATCH_ROOT_DIR csomóponton belüli névvel ellátott könyvtárba. A Batch létrehoz egy környezeti változót is, amely tartalmazza a névvel ellátott könyvtár elérési útját. A feladat parancssorai ezt a környezeti változót használják, amikor az alkalmazásra hivatkoznak a csomóponton.

Windows-csomópontokon a változó a következő formátumban van:

Windows:
AZ_BATCH_APP_PACKAGE_APPLICATIONID#version

Linux-csomópontokon a formátum kissé eltérő. A pontokat (.), az kötőjeleket (-) és a számjeleket (#) aláhúzásokké simítjuk a környezeti változóban. Az alkalmazásazonosító esete is megmarad. Például:

Linux:
AZ_BATCH_APP_PACKAGE_applicationid_version

APPLICATIONID és version azok az értékek, amelyek megfelelnek az üzembe helyezéshez megadott alkalmazás- és csomagverziónak. Ha például azt adja meg, hogy az alkalmazáskeverő 2.7-es verzióját windowsos csomópontokra kell telepíteni, a feladat parancssorai ezt a környezeti változót használják a fájlok eléréséhez:

Windows:
AZ_BATCH_APP_PACKAGE_BLENDER#2.7

Linux-csomópontokon adja meg a környezeti változót ebben a formátumban. A pontokat (.), a kötőjeleket (-) és a számjeleket (#) aláhúzásjelekké olvassa, és őrizze meg az alkalmazásazonosító esetét:

Linux:
AZ_BATCH_APP_PACKAGE_blender_2_7

Alkalmazáscsomag feltöltésekor megadhat egy alapértelmezett verziót a számítási csomópontokon való üzembe helyezéshez. Ha alapértelmezett verziót adott meg egy alkalmazáshoz, kihagyhatja a verzió utótagját, amikor az alkalmazásra hivatkozik. Az alkalmazás alapértelmezett verzióját az Azure Portal Alkalmazások ablakában adhatja meg, ahogyan az Alkalmazások feltöltése és kezelése című témakörben látható.

Ha például a "2.7" értéket állítja be az alkalmazáskeverő alapértelmezett verziójának, és a feladatok a következő környezeti változóra hivatkoznak, akkor a Windows-csomópontok a 2.7-es verziót használják:

AZ_BATCH_APP_PACKAGE_BLENDER

Az alábbi kódrészlet egy példafeladat parancssorát mutatja be, amely elindítja a keverőalkalmazás alapértelmezett verzióját:

string taskId = "blendertask01";
string commandLine =
    @"cmd /c %AZ_BATCH_APP_PACKAGE_BLENDER%\blender.exe -args -here";
CloudTask blenderTask = new CloudTask(taskId, commandLine);

Tipp

További információ a számítási csomópont környezeti beállításairól: Környezeti beállítások tevékenységekhez.

Készlet alkalmazáscsomagjainak frissítése

Ha egy meglévő készlet már konfigurálva van egy alkalmazáscsomaggal, megadhat egy új csomagot a készlethez. Ez a következőkkel jár:

  • A Batch szolgáltatás telepíti az újonnan megadott csomagot a készlethez csatlakozó összes új csomópontra, valamint az újraindult vagy újraindult meglévő csomópontokra.
  • Azok a számítási csomópontok, amelyek már a készletben vannak a csomaghivatkozások frissítésekor, nem telepítik automatikusan az új alkalmazáscsomagot. Ezeket a számítási csomópontokat újra kell indítani vagy újra kell formázni az új csomag fogadásához.
  • Új csomag üzembe helyezésekor a létrehozott környezeti változók az új alkalmazáscsomag-referenciákat tükrözik.

Ebben a példában a meglévő készlet a keverőalkalmazás 2.7-es verziójával rendelkezik, amely a CloudPool.ApplicationPackageReferences egyikének van konfigurálva. Ha a készlet csomópontjait a 2.76b-os verzióval szeretné frissíteni, adjon meg egy új ApplicationPackageReference értéket az új verzióval, és véglegesítse a módosítást.

string newVersion = "2.76b";
CloudPool boundPool = await batchClient.PoolOperations.GetPoolAsync("myPool");
boundPool.ApplicationPackageReferences = new List<ApplicationPackageReference>
{
    new ApplicationPackageReference {
        ApplicationId = "blender",
        Version = newVersion }
};
await boundPool.CommitAsync();

Most, hogy az új verzió konfigurálva lett, a Batch szolgáltatás telepíti a 2.76b-os verziót a készlethez csatlakozó új csomópontra. Ha a 2.76b-ot a készletben lévő csomópontokra szeretné telepíteni, indítsa újra vagy újra azokat. Az újraindított csomópontok megőrzik a korábbi csomagtelepítések fájljait.

Alkalmazások listázása Batch-fiókban

Az alkalmazásokat és csomagjaikat az ApplicationOperations.ListApplicationSummaries metódussal listázhatja egy Batch-fiókban.

// List the applications and their application packages in the Batch account.
List<ApplicationSummary> applications = await batchClient.ApplicationOperations.ListApplicationSummaries().ToListAsync();
foreach (ApplicationSummary app in applications)
{
    Console.WriteLine("ID: {0} | Display Name: {1}", app.Id, app.DisplayName);

    foreach (string version in app.Versions)
    {
        Console.WriteLine("  {0}", version);
    }
}

Következő lépések