BatchJobPreparationTaskOutput interface
Een taakvoorbereidingstaak die moet worden uitgevoerd voordat taken van de taak op een bepaald rekenknooppunt worden uitgevoerd. U kunt jobvoorbereiding gebruiken om een knooppunt voor te bereiden om taken voor de taak uit te voeren. Activiteiten die vaak worden uitgevoerd in taakvoorbereiding zijn onder andere: algemene resourcebestanden downloaden die door alle taken in de taak worden gebruikt. De taakvoorbereidingstaak kan deze algemene resourcebestanden downloaden naar de gedeelde locatie op het knooppunt. (AZ_BATCH_NODE_ROOT_DIR\shared) of start een lokale service op het knooppunt, zodat alle taken van die taak ermee kunnen communiceren. Als de taakvoorbereidingstaak mislukt (dat wil gezegd, wordt het aantal nieuwe pogingen uitgeput voordat u afsluit met afsluitcode 0), voert Batch taken van deze taak niet uit op het knooppunt. Het rekenknooppunt blijft niet in aanmerking om taken van deze taak uit te voeren totdat deze opnieuw wordt geinstallatiekopie gemaakt. Het rekenknooppunt blijft actief en kan worden gebruikt voor andere taken. De taakvoorbereidingstaak kan meerdere keren worden uitgevoerd op hetzelfde knooppunt. Daarom moet u de jobvoorbereidingstaak schrijven om de heruitvoering af te handelen. Als het knooppunt opnieuw wordt opgestart, wordt de jobvoorbereidingstaak opnieuw uitgevoerd op het rekenknooppunt voordat u een andere taak van de taak plant, als opnieuw uitvoerenOnNodeRebootAfterSuccess waar is of als de taakvoorbereidingstaak nog niet eerder is voltooid. Als het knooppunt opnieuw wordt gemaakt, wordt de taakvoorbereidingstaak opnieuw uitgevoerd voordat u een taak van de taak plant. Batch voert taken opnieuw uit wanneer een herstelbewerking wordt geactiveerd op een knooppunt. Voorbeelden van herstelbewerkingen zijn (maar zijn niet beperkt tot) wanneer een beschadigd knooppunt opnieuw wordt opgestart of een rekenknooppunt is verdwenen vanwege een hostfout. Nieuwe pogingen vanwege herstelbewerkingen zijn onafhankelijk van en worden niet meegeteld voor maxTaskRetryCount. Zelfs als maxTaskRetryCount 0 is, kan er een interne nieuwe poging worden uitgevoerd vanwege een herstelbewerking. Daarom moeten alle taken idempotent zijn. Dit betekent dat taken moeten worden onderbroken en opnieuw moeten worden gestart zonder beschadiging of dubbele gegevens te veroorzaken. De aanbevolen procedure voor langlopende taken is om een vorm van controlepunten te gebruiken.
Eigenschappen
| command |
De opdrachtregel van de jobvoorbereidingstaak. De opdrachtregel wordt niet uitgevoerd onder een shell en kan daarom niet profiteren van shell-functies zoals uitbreiding van omgevingsvariabelen. Als u van dergelijke functies wilt profiteren, moet u de shell aanroepen op de opdrachtregel, bijvoorbeeld met 'cmd /c MyCommand' in Windows of '/bin/sh -c MyCommand' in Linux. Als de opdrachtregel verwijst naar bestandspaden, moet deze een relatief pad gebruiken (ten opzichte van de werkmap Taak) of de door Batch geleverde omgevingsvariabele (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables). |
| constraints | Beperkingen die van toepassing zijn op de jobvoorbereidingstaak. |
| container |
De instellingen voor de container waaronder de jobvoorbereidingstaak wordt uitgevoerd. Wanneer dit is opgegeven, worden alle mappen recursief onder de AZ_BATCH_NODE_ROOT_DIR (de hoofdmap van Azure Batch-mappen op het knooppunt) toegewezen aan de container, worden alle omgevingsvariabelen van de taak toegewezen aan de container en wordt de opdrachtregel Taak uitgevoerd in de container. Bestanden die worden geproduceerd in de container buiten AZ_BATCH_NODE_ROOT_DIR worden mogelijk niet weergegeven op de hostschijf, wat betekent dat Batch-bestands-API's geen toegang hebben tot deze bestanden. |
| environment |
Een lijst met omgevingsvariabeleinstellingen voor de jobvoorbereidingstaak. |
| id | Een tekenreeks die de jobvoorbereidingstaak uniek identificeert binnen de taak. De id kan elke combinatie van alfanumerieke tekens bevatten, inclusief afbreekstreepjes en onderstrepingstekens en mag niet meer dan 64 tekens bevatten. Als u deze eigenschap niet opgeeft, wijst de Batch-service een standaardwaarde van jobpreparation toe. Er kan geen andere taak in de taak dezelfde id hebben als de jobvoorbereidingstaak. Als u een taak met dezelfde id probeert in te dienen, weigert de Batch-service de aanvraag met foutcode TaskIdSameAsJobPreparationTask; als u de REST API rechtstreeks aanroept, is de HTTP-statuscode 409 (conflict). |
| rerun |
Of de Batch-service de taakvoorbereidingstaak opnieuw moet uitvoeren nadat een rekenknooppunt opnieuw is opgestart. De taakvoorbereidingstaak wordt altijd opnieuw uitgevoerd als er een installatiekopie van een rekenknooppunt wordt gemaakt of als de taakvoorbereidingstaak niet is voltooid (bijvoorbeeld omdat het opnieuw opstarten is opgetreden tijdens het uitvoeren van de taak). Daarom moet u altijd een taakvoorbereidingstaak schrijven om idempotent te zijn en zich correct te gedragen als deze meerdere keren wordt uitgevoerd. De standaardwaarde is waar. |
| resource |
Een lijst met bestanden die de Batch-service naar het rekenknooppunt downloadt voordat u de opdrachtregel uitvoert. Bestanden die onder dit element worden vermeld, bevinden zich in de werkmap van de taak. Er is een maximale grootte voor de lijst met resourcebestanden. Wanneer de maximale grootte wordt overschreden, mislukt de aanvraag en is de antwoordfoutcode RequestEntityTooLarge. Als dit het geval is, moet de verzameling ResourceFiles worden verkleind. Dit kan worden bereikt met behulp van .zip bestanden, toepassingspakketten of Docker-containers. |
| user |
De gebruikersidentiteit waaronder de jobvoorbereidingstaak wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een niet-beheerdersgebruiker die uniek is voor de taak op Windows-rekenknooppunten of als een niet-beheerdersgebruiker die uniek is voor de pool op Linux-rekenknooppunten. |
| wait |
Of de Batch-service moet wachten tot de taakvoorbereidingstaak is voltooid voordat u andere taken van de taak op het rekenknooppunt plant. Een taakvoorbereidingstaak is voltooid als deze wordt afgesloten met afsluitcode 0. Als waar is en de taakvoorbereidingstaak op een knooppunt mislukt, probeert de Batch-service de jobvoorbereidingstaak opnieuw uit te voeren tot het maximumaantal nieuwe pogingen (zoals opgegeven in het beperkingselement). Als de taak na alle nieuwe pogingen nog steeds niet is voltooid, plant de Batch-service geen taken van de taak naar het knooppunt. Het knooppunt blijft actief en komt in aanmerking voor het uitvoeren van taken van andere taken. Als dit onwaar is, wacht de Batch-service niet tot de taakvoorbereidingstaak is voltooid. In dit geval kunnen andere taken van de taak worden uitgevoerd op het rekenknooppunt terwijl de taakvoorbereidingstaak nog steeds wordt uitgevoerd; en zelfs als de taakvoorbereiding mislukt, blijven nieuwe taken gepland op het rekenknooppunt. De standaardwaarde is waar. |
Eigenschapdetails
commandLine
De opdrachtregel van de jobvoorbereidingstaak. De opdrachtregel wordt niet uitgevoerd onder een shell en kan daarom niet profiteren van shell-functies zoals uitbreiding van omgevingsvariabelen. Als u van dergelijke functies wilt profiteren, moet u de shell aanroepen op de opdrachtregel, bijvoorbeeld met 'cmd /c MyCommand' in Windows of '/bin/sh -c MyCommand' in Linux. Als de opdrachtregel verwijst naar bestandspaden, moet deze een relatief pad gebruiken (ten opzichte van de werkmap Taak) of de door Batch geleverde omgevingsvariabele (https://learn.microsoft.com/azure/batch/batch-compute-node-environment-variables).
commandLine: string
Waarde van eigenschap
string
constraints
Beperkingen die van toepassing zijn op de jobvoorbereidingstaak.
constraints?: BatchTaskConstraintsOutput
Waarde van eigenschap
containerSettings
De instellingen voor de container waaronder de jobvoorbereidingstaak wordt uitgevoerd. Wanneer dit is opgegeven, worden alle mappen recursief onder de AZ_BATCH_NODE_ROOT_DIR (de hoofdmap van Azure Batch-mappen op het knooppunt) toegewezen aan de container, worden alle omgevingsvariabelen van de taak toegewezen aan de container en wordt de opdrachtregel Taak uitgevoerd in de container. Bestanden die worden geproduceerd in de container buiten AZ_BATCH_NODE_ROOT_DIR worden mogelijk niet weergegeven op de hostschijf, wat betekent dat Batch-bestands-API's geen toegang hebben tot deze bestanden.
containerSettings?: BatchTaskContainerSettingsOutput
Waarde van eigenschap
environmentSettings
Een lijst met omgevingsvariabeleinstellingen voor de jobvoorbereidingstaak.
environmentSettings?: EnvironmentSettingOutput[]
Waarde van eigenschap
id
Een tekenreeks die de jobvoorbereidingstaak uniek identificeert binnen de taak. De id kan elke combinatie van alfanumerieke tekens bevatten, inclusief afbreekstreepjes en onderstrepingstekens en mag niet meer dan 64 tekens bevatten. Als u deze eigenschap niet opgeeft, wijst de Batch-service een standaardwaarde van jobpreparation toe. Er kan geen andere taak in de taak dezelfde id hebben als de jobvoorbereidingstaak. Als u een taak met dezelfde id probeert in te dienen, weigert de Batch-service de aanvraag met foutcode TaskIdSameAsJobPreparationTask; als u de REST API rechtstreeks aanroept, is de HTTP-statuscode 409 (conflict).
id?: string
Waarde van eigenschap
string
rerunOnNodeRebootAfterSuccess
Of de Batch-service de taakvoorbereidingstaak opnieuw moet uitvoeren nadat een rekenknooppunt opnieuw is opgestart. De taakvoorbereidingstaak wordt altijd opnieuw uitgevoerd als er een installatiekopie van een rekenknooppunt wordt gemaakt of als de taakvoorbereidingstaak niet is voltooid (bijvoorbeeld omdat het opnieuw opstarten is opgetreden tijdens het uitvoeren van de taak). Daarom moet u altijd een taakvoorbereidingstaak schrijven om idempotent te zijn en zich correct te gedragen als deze meerdere keren wordt uitgevoerd. De standaardwaarde is waar.
rerunOnNodeRebootAfterSuccess?: boolean
Waarde van eigenschap
boolean
resourceFiles
Een lijst met bestanden die de Batch-service naar het rekenknooppunt downloadt voordat u de opdrachtregel uitvoert. Bestanden die onder dit element worden vermeld, bevinden zich in de werkmap van de taak. Er is een maximale grootte voor de lijst met resourcebestanden. Wanneer de maximale grootte wordt overschreden, mislukt de aanvraag en is de antwoordfoutcode RequestEntityTooLarge. Als dit het geval is, moet de verzameling ResourceFiles worden verkleind. Dit kan worden bereikt met behulp van .zip bestanden, toepassingspakketten of Docker-containers.
resourceFiles?: ResourceFileOutput[]
Waarde van eigenschap
userIdentity
De gebruikersidentiteit waaronder de jobvoorbereidingstaak wordt uitgevoerd. Als u dit weglaat, wordt de taak uitgevoerd als een niet-beheerdersgebruiker die uniek is voor de taak op Windows-rekenknooppunten of als een niet-beheerdersgebruiker die uniek is voor de pool op Linux-rekenknooppunten.
userIdentity?: UserIdentityOutput
Waarde van eigenschap
waitForSuccess
Of de Batch-service moet wachten tot de taakvoorbereidingstaak is voltooid voordat u andere taken van de taak op het rekenknooppunt plant. Een taakvoorbereidingstaak is voltooid als deze wordt afgesloten met afsluitcode 0. Als waar is en de taakvoorbereidingstaak op een knooppunt mislukt, probeert de Batch-service de jobvoorbereidingstaak opnieuw uit te voeren tot het maximumaantal nieuwe pogingen (zoals opgegeven in het beperkingselement). Als de taak na alle nieuwe pogingen nog steeds niet is voltooid, plant de Batch-service geen taken van de taak naar het knooppunt. Het knooppunt blijft actief en komt in aanmerking voor het uitvoeren van taken van andere taken. Als dit onwaar is, wacht de Batch-service niet tot de taakvoorbereidingstaak is voltooid. In dit geval kunnen andere taken van de taak worden uitgevoerd op het rekenknooppunt terwijl de taakvoorbereidingstaak nog steeds wordt uitgevoerd; en zelfs als de taakvoorbereiding mislukt, blijven nieuwe taken gepland op het rekenknooppunt. De standaardwaarde is waar.
waitForSuccess?: boolean
Waarde van eigenschap
boolean