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

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.