Oktatóanyag: ACR-feladat futtatása meghatározott ütemezés szerint
Ez az oktatóanyag bemutatja, hogyan futtathat ACR-feladatokat ütemezés szerint. Feladat ütemezése egy vagy több időzítő eseményindító beállításával. Az időzítő eseményindítók önállóan vagy más tevékenységindítókkal kombinálva is használhatók.
Ebben az oktatóanyagban megismerheti a tevékenységek ütemezését és a következőket:
- Feladat létrehozása időzítő-eseményindítóval
- Időzítő eseményindítóinak kezelése
A tevékenységek ütemezése az alábbihoz hasonló helyzetekben hasznos:
- Tároló számítási feladatainak futtatása ütemezett karbantartási műveletekhez. Futtasson például egy tárolóalapú alkalmazást, amely eltávolítja a szükségtelen lemezképeket a beállításjegyzékből.
- Futtasson tesztkészletet egy éles rendszerképen a munkanap során az élőhely-monitorozás részeként.
Előfeltételek
Használja a Bash-környezetet az Azure Cloud Shellben. További információ: A Bash rövid útmutatója az Azure Cloud Shellben.
Ha inkább helyi cli-referenciaparancsokat szeretne futtatni, telepítse az Azure CLI-t. Ha Windows vagy macOS rendszert használ, fontolja meg az Azure CLI Docker-tárolóban való futtatását. További információ: Az Azure CLI futtatása Docker-tárolóban.
Ha helyi telepítést használ, jelentkezzen be az Azure CLI-be az az login parancs futtatásával. A hitelesítési folyamat befejezéséhez kövesse a terminálon megjelenő lépéseket. További bejelentkezési lehetőségekért lásd : Bejelentkezés az Azure CLI-vel.
Amikor a rendszer kéri, először telepítse az Azure CLI-bővítményt. További információ a bővítményekről: Bővítmények használata az Azure CLI-vel.
Futtassa az az version parancsot a telepített verzió és a függő kódtárak megkereséséhez. A legújabb verzióra az az upgrade paranccsal frissíthet.
Feladat ütemezése
Trigger cron kifejezéssel – A tevékenység időzítő eseményindítója cron kifejezést használ. A kifejezés egy sztring, amely öt mezőből áll, és a tevékenység aktiválásához megadja a hét percét, óráját, napját, hónapját és napját. A percenként legfeljebb egyszer használható frekvenciák támogatottak.
A kifejezés
"0 12 * * Mon-Fri"
például minden hétköznap délben (UTC) aktivál egy feladatot. Részletek a cikk későbbi részében.Több időzítő eseményindítója – Több időzítő hozzáadása egy tevékenységhez engedélyezett, ha az ütemezések eltérnek.
- Adjon meg több időzítő-eseményindítót a feladat létrehozásakor, vagy később vegye fel őket.
- Ha szeretné, nevezze el az eseményindítókat a könnyebb kezelés érdekében, vagy az ACR-feladatok alapértelmezett eseményindítóneveket adnak meg.
- Ha az időzítő ütemezése egy időben átfedésben van, az ACR Tasks az egyes időzítők ütemezett időpontjában aktiválja a tevékenységet.
Egyéb tevékenység-eseményindítók – Időzítő által aktivált tevékenységben a forráskód véglegesítése vagy az alaprendszerkép-frissítések alapján is engedélyezheti az eseményindítókat. A többi ACR-tevékenységhez hasonlóan manuálisan is futtathat ütemezett feladatokat.
Feladat létrehozása időzítő-eseményindítóval
Feladat parancs
Először töltse ki a következő rendszerhéj-környezeti változót a környezetének megfelelő értékkel. Ez a lépés nem feltétlenül szükséges, de némileg könnyebbé teszi az oktatóanyagban lévő többsoros Azure CLI-parancsok végrehajtását. Ha nem tölti ki a környezeti változót, manuálisan kell lecserélnie az egyes értékeket, bárhol is jelenjen meg a példaparancsokban.
ACR_NAME=<registry-name> # The name of your Azure container registry
Amikor az az acr-feladat létrehozási parancsával hoz létre egy feladatot, szükség esetén időzítő-eseményindítót is hozzáadhat. Adja hozzá a --schedule
paramétert, és adjon át egy cron kifejezést az időzítőhöz.
Egyszerű példaként az alábbi feladat minden nap 21:00 (UTC) időpontban futtatja a rendszerképet a hello-world
Microsoft Container Registryből. A feladat forráskódkörnyezet nélkül fut.
az acr task create \
--name timertask \
--registry $ACR_NAME \
--cmd mcr.microsoft.com/hello-world \
--schedule "0 21 * * *" \
--context /dev/null
Futtassa az az acr feladatbemutató parancsot, és ellenőrizze, hogy az időzítő eseményindítója konfigurálva van-e. Alapértelmezés szerint az alaprendszerkép-frissítési eseményindító is engedélyezve van.
az acr task show --name timertask --registry $ACR_NAME --output table
NAME PLATFORM STATUS SOURCE REPOSITORY TRIGGERS
-------- ---------- -------- ------------------- -----------------
timertask linux Enabled BASE_IMAGE, TIMER
Egy egyszerű példa a forráskódkörnyezettel futó feladatra is. Az alábbi feladat aktiválja a rendszerképet a hello-world
Microsoft Container Registryből minden nap 21:00 (UTC) időpontban.
Kövesse az előfeltételeket a forráskódkörnyezet létrehozásához, majd hozzon létre egy ütemezett feladatot környezettel.
az acr task create \
--name timertask \
--registry $ACR_NAME \
--context https://github.com/$GIT_USER/acr-build-helloworld-node.git#master \
--file Dockerfile \
--image timertask:{{.Run.ID}} \
--git-access-token $GIT_PAT \
--schedule "0 21 * * *"
Futtassa az az acr feladatbemutató parancsot, és ellenőrizze, hogy az időzítő eseményindítója konfigurálva van-e. Alapértelmezés szerint az alaprendszerkép-frissítési eseményindító is engedélyezve van.
az acr task show --name timertask --registry $ACR_NAME --output table
Futtassa az az acr feladatfuttatási parancsot a feladat manuális aktiválásához.
az acr task run --name timertask --registry $ACR_NAME
A tevékenység aktiválása
A feladat manuális aktiválása az acr-feladat futtatásával annak megfelelő beállításához:
az acr task run --name timertask --registry $ACR_NAME
Ha a tároló sikeresen fut, a kimenet az alábbihoz hasonló. A kimenet kondenzálva jelenik meg a fő lépések megjelenítéséhez
Queued a run with ID: cf2a
Waiting for an agent...
2020/11/20 21:03:36 Using acb_vol_2ca23c46-a9ac-4224-b0c6-9fde44eb42d2 as the home volume
2020/11/20 21:03:36 Creating Docker network: acb_default_network, driver: 'bridge'
[...]
2020/11/20 21:03:38 Launching container with name: acb_step_0
Hello from Docker!
This message shows that your installation appears to be working correctly.
[...]
Az ütemezett idő után futtassa az az acr feladatlista-futtatási parancsot annak ellenőrzéséhez, hogy az időzítő a várt módon aktiválta-e a feladatot:
az acr task list-runs --name timertask --registry $ACR_NAME --output table
Ha az időzítő sikeres, a kimenet a következőhöz hasonló:
RUN ID TASK PLATFORM STATUS TRIGGER STARTED DURATION
-------- --------- ---------- --------- --------- -------------------- ----------
ca15 timertask linux Succeeded Timer 2020-11-20T21:00:23Z 00:00:06
ca14 timertask linux Succeeded Manual 2020-11-20T20:53:35Z 00:00:06
Időzítő eseményindítóinak kezelése
Az az acr feladat időzítőparancsaival kezelheti az ACR-tevékenységek időzítő eseményindítóit.
Időzítő eseményindító hozzáadása vagy frissítése
A feladat létrehozása után szükség esetén hozzáadhat egy időzítő-eseményindítót az az acr feladat időzítőjének hozzáadási parancsával. Az alábbi példa egy időzítő eseményindító 2. nevének időzítőt ad hozzá a korábban létrehozott timertaskhoz. Ez az időzítő minden nap 10:30-kor (UTC) aktiválja a feladatot.
az acr task timer add \
--name timertask \
--registry $ACR_NAME \
--timer-name timer2 \
--schedule "30 10 * * *"
Frissítse egy meglévő eseményindító ütemezését, vagy módosítsa annak állapotát az az acr feladat időzítőjének frissítési parancsával. Frissítse például a 2. időzítő nevű eseményindítót úgy, hogy a tevékenységet UTC 11:30-kor aktiválja:
az acr task timer update \
--name timertask \
--registry $ACR_NAME \
--timer-name timer2 \
--schedule "30 11 * * *"
Időzítő eseményindítók listázása
Az az acr feladat időzítőlista parancsa a tevékenységhez beállított időzítő-eseményindítókat jeleníti meg:
az acr task timer list --name timertask --registry $ACR_NAME
Példa a kimenetre:
[
{
"name": "timer2",
"schedule": "30 11 * * *",
"status": "Enabled"
},
{
"name": "t1",
"schedule": "0 21 * * *",
"status": "Enabled"
}
]
Időzítő eseményindító eltávolítása
Az az acr-feladat időzítőjének eltávolítási parancsával eltávolíthat egy időzítő-eseményindítót egy tevékenységből. Az alábbi példa eltávolítja az időzítő2 eseményindítót az időzítésből:
az acr task timer remove \
--name timertask \
--registry $ACR_NAME \
--timer-name timer2
Cron-kifejezések
Az ACR Tasks az NCronTab kódtár használatával értelmezi a cronkifejezéseket. Az ACR-feladatokban támogatott kifejezések öt kötelező mezőt tartalmaznak, szóközzel elválasztva:
{minute} {hour} {day} {month} {day-of-week}
A cron kifejezésekhez használt időzóna az egyezményes világidő (UTC). Az órák 24 órás formátumban vannak.
Feljegyzés
Az ACR Tasks nem támogatja a {second}
cron-kifejezésekben szereplő mezőt vagy {year}
mezőt. Ha egy másik rendszerben használt cron kifejezést másol, mindenképpen távolítsa el ezeket a mezőket, ha használják őket.
Minden mező a következő típusú értékek egyikével rendelkezhet:
Típus | Példa | Aktivált állapotban |
---|---|---|
Egy adott érték | "5 * * * *" |
óránként 5 perccel az óra elteltével |
Minden érték (* ) |
"* 5 * * *" |
az óra minden perce 5:00 -tól (naponta 60-szor) |
Tartomány (- operátor) |
"0 1-3 * * *" |
Naponta háromszor, 1:00, 2:00 és 3:00 (UTC) |
Értékek halmaza (, operátor) |
"20,30,40 * * * *" |
Óránként háromszor, 20 perc, 30 perc és 40 perc elteltével |
Intervallumérték (/ operátor) |
"*/10 * * * *" |
Óránként 6 alkalommal, 10 perc, 20 perc stb. |
Hónapok vagy napok megadásához numerikus értékeket, neveket vagy nevek rövidítéseit használhatja:
- Napokra a numerikus értékek 0 és 6 között vannak, ahol a 0 vasárnap kezdődik.
- A nevek angolul vannak. Például:
Monday
,January
. - A nevek nem érzékenyek a kis- és nagybetűkre.
- A nevek rövidítve is lehetnek. A három betű az ajánlott rövidítési hossz. Például:
Mon
,Jan
.
Cron-példák
Példa | Aktivált állapotban |
---|---|
"*/5 * * * *" |
öt percenként egyszer |
"0 * * * *" |
minden óra tetején egyszer |
"0 */2 * * *" |
két óránként egyszer |
"0 9-17 * * *" |
óránként egyszer 9:00 és 17:00 között (UTC) |
"30 9 * * *" |
minden nap 9:30 -kor (UTC) |
"30 9 * * 1-5" |
minden hétköznap 9:30 -kor (UTC) |
"30 9 * Jan Mon" |
januárban minden hétfőn 9:30 -kor (UTC) |
Az erőforrások eltávolítása
Az oktatóanyag-sorozatban létrehozott összes erőforrás eltávolításához, beleértve a tárolóregisztrációs adatbázist vagy a regisztrációs adatbázist, a tárolópéldányt, a kulcstartót és a szolgáltatásnevet, adja ki a következő parancsokat:
az group delete --resource-group $RES_GROUP
az ad sp delete --id http://$ACR_NAME-pull
Következő lépések
Ebben az oktatóanyagban megtanulta, hogyan hozhat létre olyan Azure Container Registry-feladatokat, amelyeket az időzítő automatikusan aktivál.
Ha például ütemezett feladattal szeretné megtisztítani az adattárakat egy beállításjegyzékben, tekintse meg az Azure-tárolóregisztrációs adatbázis lemezképeinek automatikus kiürítése című témakört.
A forráskód-véglegesítések vagy az alaprendszerkép-frissítések által aktivált feladatokra az ACR Tasks oktatóanyag-sorozat további cikkeiből tájékozódhat.