BatchJobPreparationTask interface
En jobbförberedelseaktivitet som ska köras före aktiviteter i jobbet på en viss beräkningsnod. Du kan använda Jobbförberedelse för att förbereda en nod för att köra uppgifter för jobbet. Aktiviteter som vanligtvis utförs i Jobbförberedelse omfattar: Ladda ned vanliga resursfiler som används av alla aktiviteter i jobbet. Jobbförberedelseaktiviteten kan ladda ned dessa vanliga resursfiler till den delade platsen på noden. (AZ_BATCH_NODE_ROOT_DIR\shared) eller starta en lokal tjänst på noden så att alla uppgifter i jobbet kan kommunicera med den. Om jobbförberedelseaktiviteten misslyckas (d.v.s. uttömmer antalet återförsök innan den avslutas med slutkod 0) kommer Batch inte att köra uppgifter för det här jobbet på noden. Beräkningsnoden är inte berättigad att köra uppgifter för det här jobbet tills den har återskapats. Beräkningsnoden förblir aktiv och kan användas för andra jobb. Jobbförberedelseaktiviteten kan köras flera gånger på samma nod. Därför bör du skriva jobbförberedelseaktiviteten för att hantera omkörningen. Om noden startas om körs jobbförberedelseaktiviteten igen på beräkningsnoden innan någon annan aktivitet i jobbet schemaläggs, om rerunOnNodeRebootAfterSuccess är sant eller om jobbförberedelseaktiviteten inte slutfördes tidigare. Om noden har återskapats körs jobbförberedelseaktiviteten igen innan någon uppgift i jobbet schemaläggs. Batch försöker utföra uppgifter igen när en återställningsåtgärd utlöses på en nod. Exempel på återställningsåtgärder är (men är inte begränsade till) när en nod med feltillstånd startas om eller en beräkningsnod försvinner på grund av värdfel. Återförsök på grund av återställningsåtgärder är oberoende av och räknas inte mot maxTaskRetryCount. Även om maxTaskRetryCount är 0 kan ett internt återförsök på grund av en återställningsåtgärd inträffa. Därför bör alla aktiviteter vara idempotent. Det innebär att Uppgifter måste tolerera att avbrytas och startas om utan att orsaka skada eller duplicera data. Bästa praxis för långvariga uppgifter är att använda någon form av kontrollpunkter.
Egenskaper
| command |
Kommandoraden för Jobbförberedelseuppgiften. Kommandoraden körs inte under ett gränssnitt och kan därför inte dra nytta av gränssnittsfunktioner som miljövariabelexpansion. Om du vill dra nytta av sådana funktioner bör du anropa gränssnittet på kommandoraden, till exempel med hjälp av "cmd /c MyCommand" i Windows eller "/bin/sh -c MyCommand" i Linux. Om kommandoraden refererar till filsökvägar bör den använda en relativ sökväg (i förhållande till arbetskatalogen Uppgift) eller använda miljövariabeln i Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Begränsningar som gäller för Jobbförberedelseuppgiften. |
| container |
Inställningarna för containern under vilken Jobbförberedelseuppgiften körs. När detta anges mappas alla kataloger rekursivt under AZ_BATCH_NODE_ROOT_DIR (roten till Azure Batch-katalogerna på noden) in i containern, alla Task-miljövariabler mappas in i containern och Task-kommandoraden körs i containern. Filer som produceras i containern utanför AZ_BATCH_NODE_ROOT_DIR kanske inte reflekteras till värddisken, vilket innebär att batchfil-API:er inte kan komma åt dessa filer. |
| environment |
En lista över miljövariabler för uppgiften Jobbförberedelse. |
| id | En sträng som unikt identifierar Jobbförberedelseuppgiften inom Jobbet. ID:t kan innehålla vilken kombination av alfanumeriska tecken som helst, inklusive bindestreck och understreck, och får inte innehålla mer än 64 tecken. Om du inte specificerar denna egenskap tilldelar Batch-tjänsten standardvärdet 'jobbförberedelse'. Ingen annan uppgift i jobbet kan ha samma ID som arbetsförberedelseuppgiften. Om du försöker skicka in en Task med samma id, avvisar Batch-tjänsten förfrågan med felkoden TaskIdSameAsJobPreparationTask; om du anropar REST-API:et direkt är HTTP-statuskoden 409 (Conflict). |
| rerun |
Om batchtjänsten ska köra om Jobbförberedelseuppgiften efter att en beräkningsnod startats om. Jobbförberedelseuppgiften körs alltid om om en beräkningsnod ombildas, eller om jobbförberedelseuppgiften inte slutfördes (t.ex. eftersom omstarten skedde medan uppgiften kördes). Därför bör du alltid skriva en jobbförberedelseuppgift för att vara idempotent och bete sig korrekt om den utförs flera gånger. Standardvärdet är sant. |
| resource |
En lista över filer som Batch-tjänsten laddar ned till beräkningsnoden innan du kör kommandoraden. Filer som visas under det här elementet finns i arbetskatalogen för aktiviteten. Det finns en maximal storlek för listan över resursfiler. När maxstorleken överskrids misslyckas begäran och svarsfelkoden requestEntityTooLarge. Om detta inträffar måste samlingen av ResourceFiles minskas i storlek. Detta kan uppnås med hjälp av .zip filer, programpaket eller Docker-containrar. |
| user |
Användaridentiteten under vilken Jobbförberedelseuppgiften körs. Om den utelämnas körs uppgiften som en icke-administrativ användare unik för uppgiften på Windows Compute Nodes, eller som en icke-administrativ användare unik för Pool on Linux Compute Nodes. |
| wait |
Om batchtjänsten ska vänta tills jobbförberedelseuppgiften är klar innan andra uppgifter för jobbet på beräkningsnoden schemaläggs där. En jobbförberedelseuppgift har slutförts framgångsrikt om den avslutas med utgångskod 0. Om sant och Jobbförberedelseuppgiften misslyckas på en nod, försöker batchtjänsten om Jobbförberedelseuppgiften upp till dess maximala antal försök (enligt begränsningselementet). Om uppgiften fortfarande inte har slutförts framgångsrikt efter alla omförsök, kommer batchtjänsten inte att schemalägga jobbets uppgifter till noden. Noden är aktiv och berättigad att utföra uppgifter för andra jobb. Om den är falsk kommer Batch-tjänsten inte att vänta på att Jobbförberedelseuppgiften ska slutföras. I detta fall kan andra uppgifter i jobbet börja köras på beräkningsnoden medan jobbförberedelseuppgiften fortfarande körs; och även om Jobbförberedelseuppgiften misslyckas, kommer nya uppgifter att fortsätta schemaläggas på beräkningsnoden. Standardvärdet är sant. |
Fastighetsdetaljer
commandLine
Kommandoraden för Jobbförberedelseuppgiften. Kommandoraden körs inte under ett gränssnitt och kan därför inte dra nytta av gränssnittsfunktioner som miljövariabelexpansion. Om du vill dra nytta av sådana funktioner bör du anropa gränssnittet på kommandoraden, till exempel med hjälp av "cmd /c MyCommand" i Windows eller "/bin/sh -c MyCommand" i Linux. Om kommandoraden refererar till filsökvägar bör den använda en relativ sökväg (i förhållande till arbetskatalogen Uppgift) eller använda miljövariabeln i Batch (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Fastighetsvärde
string
constraints
Begränsningar som gäller för Jobbförberedelseuppgiften.
constraints?: BatchTaskConstraints
Fastighetsvärde
containerSettings
Inställningarna för containern under vilken Jobbförberedelseuppgiften körs. När detta anges mappas alla kataloger rekursivt under AZ_BATCH_NODE_ROOT_DIR (roten till Azure Batch-katalogerna på noden) in i containern, alla Task-miljövariabler mappas in i containern och Task-kommandoraden körs i containern. Filer som produceras i containern utanför AZ_BATCH_NODE_ROOT_DIR kanske inte reflekteras till värddisken, vilket innebär att batchfil-API:er inte kan komma åt dessa filer.
containerSettings?: BatchTaskContainerSettings
Fastighetsvärde
environmentSettings
En lista över miljövariabler för uppgiften Jobbförberedelse.
environmentSettings?: EnvironmentSetting[]
Fastighetsvärde
id
En sträng som unikt identifierar Jobbförberedelseuppgiften inom Jobbet. ID:t kan innehålla vilken kombination av alfanumeriska tecken som helst, inklusive bindestreck och understreck, och får inte innehålla mer än 64 tecken. Om du inte specificerar denna egenskap tilldelar Batch-tjänsten standardvärdet 'jobbförberedelse'. Ingen annan uppgift i jobbet kan ha samma ID som arbetsförberedelseuppgiften. Om du försöker skicka in en Task med samma id, avvisar Batch-tjänsten förfrågan med felkoden TaskIdSameAsJobPreparationTask; om du anropar REST-API:et direkt är HTTP-statuskoden 409 (Conflict).
id?: string
Fastighetsvärde
string
rerunOnNodeRebootAfterSuccess
Om batchtjänsten ska köra om Jobbförberedelseuppgiften efter att en beräkningsnod startats om. Jobbförberedelseuppgiften körs alltid om om en beräkningsnod ombildas, eller om jobbförberedelseuppgiften inte slutfördes (t.ex. eftersom omstarten skedde medan uppgiften kördes). Därför bör du alltid skriva en jobbförberedelseuppgift för att vara idempotent och bete sig korrekt om den utförs flera gånger. Standardvärdet är sant.
rerunOnNodeRebootAfterSuccess?: boolean
Fastighetsvärde
boolean
resourceFiles
En lista över filer som Batch-tjänsten laddar ned till beräkningsnoden innan du kör kommandoraden. Filer som visas under det här elementet finns i arbetskatalogen för aktiviteten. Det finns en maximal storlek för listan över resursfiler. När maxstorleken överskrids misslyckas begäran och svarsfelkoden requestEntityTooLarge. Om detta inträffar måste samlingen av ResourceFiles minskas i storlek. Detta kan uppnås med hjälp av .zip filer, programpaket eller Docker-containrar.
resourceFiles?: ResourceFile[]
Fastighetsvärde
userIdentity
Användaridentiteten under vilken Jobbförberedelseuppgiften körs. Om den utelämnas körs uppgiften som en icke-administrativ användare unik för uppgiften på Windows Compute Nodes, eller som en icke-administrativ användare unik för Pool on Linux Compute Nodes.
userIdentity?: UserIdentity
Fastighetsvärde
waitForSuccess
Om batchtjänsten ska vänta tills jobbförberedelseuppgiften är klar innan andra uppgifter för jobbet på beräkningsnoden schemaläggs där. En jobbförberedelseuppgift har slutförts framgångsrikt om den avslutas med utgångskod 0. Om sant och Jobbförberedelseuppgiften misslyckas på en nod, försöker batchtjänsten om Jobbförberedelseuppgiften upp till dess maximala antal försök (enligt begränsningselementet). Om uppgiften fortfarande inte har slutförts framgångsrikt efter alla omförsök, kommer batchtjänsten inte att schemalägga jobbets uppgifter till noden. Noden är aktiv och berättigad att utföra uppgifter för andra jobb. Om den är falsk kommer Batch-tjänsten inte att vänta på att Jobbförberedelseuppgiften ska slutföras. I detta fall kan andra uppgifter i jobbet börja köras på beräkningsnoden medan jobbförberedelseuppgiften fortfarande körs; och även om Jobbförberedelseuppgiften misslyckas, kommer nya uppgifter att fortsätta schemaläggas på beräkningsnoden. Standardvärdet är sant.
waitForSuccess?: boolean
Fastighetsvärde
boolean