Tárolóalapú feladatok futtatása újraindítási szabályzatokkal

A tárolók Azure Container Instances szolgáltatásban való üzembe helyezésének egyszerűsége és gyorsasága kényelmes platformot biztosít, amellyel egy tárolópéldányban hajthat végre olyan egyszer futó feladatokat, mint a létrehozás, a tesztelés és a képrenderelés.

A konfigurálható újraindítási szabályzat segítségével megadhatja, hogy a tárolók leálljanak, amikor a folyamataik befejeződtek. Mivel a tárolópéldányok számlázása másodpercalapú, csak azokért a számítási erőforrásokért kell díjat fizetnie, amelyek használatban voltak, amikor a feladatot végrehajtó tároló futott.

A cikkben bemutatott példák az Azure CLI-t használják. Az Azure CLI 2.0.21-es vagy újabb verziójának helyileg kell telepítve lennie, vagy az Azure Cloud Shell kell használnia a PARANCSSORI-t.

Tároló-újraindítási szabályzat

Amikor létrehoz egy tárolócsoportot Azure Container Instances, megadhatja a három újraindítási házirend-beállítás egyikét.

Újraindítási szabályzat Leírás
Always A tárolócsoportban lévő tárolókat a rendszer mindig újraindítja. Ez az alapértelmezés szerint érvényben lévő beállítás, ha nem ad meg újraindítási szabályzatot a tároló létrehozásakor.
Never A tárolócsoportban lévő tárolókat a rendszer sosem indítja újra. A tárolók legfeljebb egyszer futnak.
OnFailure A tárolócsoportban lévő tárolókat a rendszer csak akkor indítja újra, ha a tárolóban végrehajtott folyamat meghiúsult (azaz nullától eltérő kilépési kóddal zárul). A tárolók legalább egyszer futnak.

Megjegyzés

Ha a tárolócsoport IP-címmel van konfigurálva, ez az IP-cím változhat a tárolócsoport újraindításakor.

Újraindítási szabályzat megadása

Az újraindítási szabályzat megadása attól függ, hogyan hozza létre a tárolópéldányokat, például az Azure CLI-vel, Azure PowerShell parancsmagokkal vagy a Azure Portal. Az Azure CLI-ben adja meg a paramétert, amikor meghívja az --restart-policyaz container create parancsot.

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mycontainerimage \
    --restart-policy OnFailure

Futtatás befejezésig példa

Az újraindítási szabályzat működés közbeni megtekintéséhez hozzon létre egy tárolópéldányt a Microsoft aci-wordcount rendszerképéből, és adja meg az újraindítási OnFailure szabályzatot. Ez a példatároló egy Python-szkriptet futtat, amely alapértelmezés szerint elemzi Shakespeare Hamletjének szövegét, megírja a 10 leggyakoribb szót az STDOUT-ba, majd kilép.

Futtassa a példatárolót az alábbi az container create paranccsal:

az container create \
    --resource-group myResourceGroup \
    --name mycontainer \
    --image mcr.microsoft.com/azuredocs/aci-wordcount:latest \
    --restart-policy OnFailure

Az Azure Container Instances elindítja a tárolót, majd leállítja, amikor az alkalmazás (vagy ebben az esetben a szkript) kilép. Ha Azure Container Instances leállítja azt a tárolót, amelynek újraindítási szabályzata Never vagy OnFailure, a tároló állapota Leállítva értékre van állítva. A tároló állapotát az az container show paranccsal ellenőrizheti:

az container show \
    --resource-group myResourceGroup \
    --name mycontainer \
    --query containers[0].instanceView.currentState.state

Példa a kimenetre:

"Terminated"

Amint a példatároló Terminated (Leállított) állapotra vált, a feladat kimenetét a tárolónaplókban ellenőrizheti. Futtassa az az container logs parancsot a szkript kimenetének megtekintéséhez:

az container logs --resource-group myResourceGroup --name mycontainer

Kimenet:

[('the', 990),
 ('and', 702),
 ('of', 628),
 ('to', 610),
 ('I', 544),
 ('you', 495),
 ('a', 453),
 ('my', 441),
 ('in', 399),
 ('HAMLET', 386)]

Ez a példa azt a kimenetet mutatja be, amelyet a szkript az STDOUT-nak küldött. A tárolóalapú tevékenységek azonban a kimenetüket az állandó tárolóba írhatják későbbi lekérés céljából. Például egy Azure-fájlmegosztásba.

Következő lépések

A feladatalapú forgatókönyvek, például a több tárolóval rendelkező nagy adathalmaz kötegelt feldolgozása, kihasználhatják az egyéni környezeti változók vagy parancssorok előnyeit futásidőben.

A befejezett tárolók kimenetének megőrzésével kapcsolatos részletekért lásd: Azure-fájlmegosztás csatlakoztatása Azure Container Instances.