Condividi tramite


JobPreparationTask interface

È possibile usare Preparazione processo per preparare un nodo per eseguire attività per il processo. Le attività comunemente eseguite nella preparazione dei processi includono: il download di file di risorse comuni usati da tutte le attività nel processo. L'attività preparazione processo può scaricare questi file di risorse comuni nel percorso condiviso nel nodo. (AZ_BATCH_NODE_ROOT_DIR\shared) o l'avvio di un servizio locale nel nodo in modo che tutte le attività di tale processo possano comunicare con esso. Se l'attività di preparazione del processo ha esito negativo, ovvero esaurisce il numero di tentativi prima di uscire con il codice di uscita 0, Batch non eseguirà Attività di questo processo nel nodo. Il nodo di calcolo rimane ineleggibile per eseguire attività di questo processo fino a quando non viene ricreata l'immagine. Il nodo di calcolo rimane attivo e può essere usato per altri processi. L'attività di preparazione del processo può essere eseguita più volte nello stesso nodo. Pertanto, è necessario scrivere l'attività preparazione processo per gestire la riesezione. Se il nodo viene riavviato, l'attività di preparazione processo viene nuovamente eseguita nel nodo di calcolo prima di pianificare qualsiasi altra attività del processo, se rerunOnNodeRebootAfterSuccess è true o se l'attività di preparazione del processo non è stata completata in precedenza. Se il nodo viene ricreato l'immagine, l'attività di preparazione processo viene eseguita di nuovo prima di pianificare un'attività del processo. Batch ritenta attività quando viene attivata un'operazione di ripristino in un nodo. Esempi di operazioni di ripristino includono (ma non sono limitati a) quando un nodo non integro viene riavviato o un nodo di calcolo è scomparso a causa di un errore dell'host. I tentativi dovuti alle operazioni di ripristino sono indipendenti da e non vengono conteggiati in base a maxTaskRetryCount. Anche se maxTaskRetryCount è 0, può verificarsi un nuovo tentativo interno a causa di un'operazione di ripristino. Per questo motivo, tutte le attività devono essere idempotenti. Ciò significa che le attività devono tollerare l'interruzione e il riavvio senza causare alcun danneggiamento o dati duplicati. La procedura consigliata per le attività a esecuzione prolungata consiste nell'usare una forma di checkpoint.

Proprietà

commandLine

Riga di comando dell'attività di preparazione del processo. La riga di comando non viene eseguita in una shell e pertanto non può sfruttare le funzionalità della shell, ad esempio l'espansione delle variabili di ambiente. Se si desidera sfruttare tali funzionalità, è necessario richiamare la shell nella riga di comando, ad esempio usando "cmd /c MyCommand" in Windows o "/bin/sh -c MyCommand" in Linux. Se la riga di comando fa riferimento ai percorsi di file, deve usare un percorso relativo (relativo alla directory di lavoro attività) o usare la variabile di ambiente fornita da Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

constraints

Vincoli che si applicano all'attività di preparazione del processo.

containerSettings

Impostazioni per il contenitore in cui viene eseguita l'attività di preparazione del processo. Quando viene specificato questo parametro, tutte le directory vengono mappate in modo ricorsivo al di sotto del AZ_BATCH_NODE_ROOT_DIR (la radice delle directory di Azure Batch nel nodo) nel contenitore, tutte le variabili di ambiente delle attività vengono mappate nel contenitore e la riga di comando Task viene eseguita nel contenitore. I file prodotti nel contenitore all'esterno di AZ_BATCH_NODE_ROOT_DIR potrebbero non essere riflessi sul disco host, ovvero le API di file batch non saranno in grado di accedere a tali file.

environmentSettings

Elenco delle impostazioni delle variabili di ambiente per l'attività di preparazione del processo.

id

Stringa che identifica in modo univoco l'attività di preparazione del processo all'interno del processo. L'ID può contenere qualsiasi combinazione di caratteri alfanumerici, inclusi trattini e caratteri di sottolineatura e non può contenere più di 64 caratteri. Se non si specifica questa proprietà, il servizio Batch assegna un valore predefinito "jobpreparation". Nessun'altra attività nel processo può avere lo stesso ID dell'attività di preparazione del processo. Se si tenta di inviare un'attività con lo stesso ID, il servizio Batch rifiuta la richiesta con codice di errore TaskIdSameAsJobPreparationTask; se si chiama direttamente l'API REST, il codice di stato HTTP è 409 (conflitto).

rerunOnNodeRebootAfterSuccess

Indica se il servizio Batch deve eseguire nuovamente l'attività di preparazione del processo dopo il riavvio di un nodo di calcolo. L'attività preparazione processo viene sempre rieseguita se viene ricreata l'immagine di un nodo di calcolo o se l'attività di preparazione del processo non è stata completata, ad esempio perché il riavvio si è verificato durante l'esecuzione dell'attività. Pertanto, è consigliabile scrivere sempre un'attività di preparazione del processo per essere idempotente e comportarsi correttamente se viene eseguita più volte. Il valore predefinito è true.

resourceFiles

Elenco di file scaricati dal servizio Batch nel nodo di calcolo prima di eseguire la riga di comando. I file elencati in questo elemento si trovano nella directory di lavoro dell'attività. È prevista una dimensione massima per l'elenco dei file di risorse. Quando viene superata la dimensione massima, la richiesta avrà esito negativo e il codice di errore della risposta sarà RequestEntityTooLarge. In questo caso, la raccolta di ResourceFiles deve essere ridotta di dimensioni. A tale scopo, è possibile usare .zip file, pacchetti di applicazioni o contenitori Docker.

userIdentity

Identità utente con cui viene eseguita l'attività di preparazione del processo. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività nei nodi di calcolo Windows o un utente non amministrativo univoco per il pool nei nodi di calcolo Linux.

waitForSuccess

Indica se il servizio Batch deve attendere il completamento dell'attività di preparazione del processo prima di pianificare qualsiasi altra attività del processo nel nodo di calcolo. Un'attività di preparazione processo è stata completata correttamente se viene chiusa con il codice di uscita 0. Se true e l'attività di preparazione del processo ha esito negativo in un nodo, il servizio Batch ritenta l'attività di preparazione del processo fino al numero massimo di tentativi (come specificato nell'elemento vincoli). Se l'attività non è ancora stata completata correttamente dopo tutti i tentativi, il servizio Batch non pianifica attività del processo nel nodo. Il nodo rimane attivo e idoneo per l'esecuzione di attività di altri processi. Se false, il servizio Batch non attenderà il completamento dell'attività di preparazione del processo. In questo caso, altre attività del processo possono iniziare a essere eseguite nel nodo di calcolo mentre l'attività di preparazione del processo è ancora in esecuzione; e anche se l'attività di preparazione del processo non riesce, le nuove attività continueranno a essere pianificate nel nodo di calcolo. Il valore predefinito è true.

Dettagli proprietà

commandLine

Riga di comando dell'attività di preparazione del processo. La riga di comando non viene eseguita in una shell e pertanto non può sfruttare le funzionalità della shell, ad esempio l'espansione delle variabili di ambiente. Se si desidera sfruttare tali funzionalità, è necessario richiamare la shell nella riga di comando, ad esempio usando "cmd /c MyCommand" in Windows o "/bin/sh -c MyCommand" in Linux. Se la riga di comando fa riferimento ai percorsi di file, deve usare un percorso relativo (relativo alla directory di lavoro attività) o usare la variabile di ambiente fornita da Batch (https://docs.microsoft.com/en-us/azure/batch/batch-compute-node-environment-variables).

commandLine: string

Valore della proprietà

string

constraints

Vincoli che si applicano all'attività di preparazione del processo.

constraints?: TaskConstraints

Valore della proprietà

containerSettings

Impostazioni per il contenitore in cui viene eseguita l'attività di preparazione del processo. Quando viene specificato questo parametro, tutte le directory vengono mappate in modo ricorsivo al di sotto del AZ_BATCH_NODE_ROOT_DIR (la radice delle directory di Azure Batch nel nodo) nel contenitore, tutte le variabili di ambiente delle attività vengono mappate nel contenitore e la riga di comando Task viene eseguita nel contenitore. I file prodotti nel contenitore all'esterno di AZ_BATCH_NODE_ROOT_DIR potrebbero non essere riflessi sul disco host, ovvero le API di file batch non saranno in grado di accedere a tali file.

containerSettings?: TaskContainerSettings

Valore della proprietà

environmentSettings

Elenco delle impostazioni delle variabili di ambiente per l'attività di preparazione del processo.

environmentSettings?: EnvironmentSetting[]

Valore della proprietà

id

Stringa che identifica in modo univoco l'attività di preparazione del processo all'interno del processo. L'ID può contenere qualsiasi combinazione di caratteri alfanumerici, inclusi trattini e caratteri di sottolineatura e non può contenere più di 64 caratteri. Se non si specifica questa proprietà, il servizio Batch assegna un valore predefinito "jobpreparation". Nessun'altra attività nel processo può avere lo stesso ID dell'attività di preparazione del processo. Se si tenta di inviare un'attività con lo stesso ID, il servizio Batch rifiuta la richiesta con codice di errore TaskIdSameAsJobPreparationTask; se si chiama direttamente l'API REST, il codice di stato HTTP è 409 (conflitto).

id?: string

Valore della proprietà

string

rerunOnNodeRebootAfterSuccess

Indica se il servizio Batch deve eseguire nuovamente l'attività di preparazione del processo dopo il riavvio di un nodo di calcolo. L'attività preparazione processo viene sempre rieseguita se viene ricreata l'immagine di un nodo di calcolo o se l'attività di preparazione del processo non è stata completata, ad esempio perché il riavvio si è verificato durante l'esecuzione dell'attività. Pertanto, è consigliabile scrivere sempre un'attività di preparazione del processo per essere idempotente e comportarsi correttamente se viene eseguita più volte. Il valore predefinito è true.

rerunOnNodeRebootAfterSuccess?: boolean

Valore della proprietà

boolean

resourceFiles

Elenco di file scaricati dal servizio Batch nel nodo di calcolo prima di eseguire la riga di comando. I file elencati in questo elemento si trovano nella directory di lavoro dell'attività. È prevista una dimensione massima per l'elenco dei file di risorse. Quando viene superata la dimensione massima, la richiesta avrà esito negativo e il codice di errore della risposta sarà RequestEntityTooLarge. In questo caso, la raccolta di ResourceFiles deve essere ridotta di dimensioni. A tale scopo, è possibile usare .zip file, pacchetti di applicazioni o contenitori Docker.

resourceFiles?: ResourceFile[]

Valore della proprietà

userIdentity

Identità utente con cui viene eseguita l'attività di preparazione del processo. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività nei nodi di calcolo Windows o un utente non amministrativo univoco per il pool nei nodi di calcolo Linux.

userIdentity?: UserIdentity

Valore della proprietà

waitForSuccess

Indica se il servizio Batch deve attendere il completamento dell'attività di preparazione del processo prima di pianificare qualsiasi altra attività del processo nel nodo di calcolo. Un'attività di preparazione processo è stata completata correttamente se viene chiusa con il codice di uscita 0. Se true e l'attività di preparazione del processo ha esito negativo in un nodo, il servizio Batch ritenta l'attività di preparazione del processo fino al numero massimo di tentativi (come specificato nell'elemento vincoli). Se l'attività non è ancora stata completata correttamente dopo tutti i tentativi, il servizio Batch non pianifica attività del processo nel nodo. Il nodo rimane attivo e idoneo per l'esecuzione di attività di altri processi. Se false, il servizio Batch non attenderà il completamento dell'attività di preparazione del processo. In questo caso, altre attività del processo possono iniziare a essere eseguite nel nodo di calcolo mentre l'attività di preparazione del processo è ancora in esecuzione; e anche se l'attività di preparazione del processo non riesce, le nuove attività continueranno a essere pianificate nel nodo di calcolo. Il valore predefinito è true.

waitForSuccess?: boolean

Valore della proprietà

boolean