Condividi tramite


StartTask interface

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. In alcuni casi startTask può essere eseguito di nuovo anche se il nodo di calcolo non è stato riavviato. Prestare particolare attenzione per evitare StartTasks che creano processi di interruzione o installano/avviano i servizi dalla directory di lavoro StartTask, in quanto questo impedisce a Batch di essere in grado di eseguire nuovamente StartTask.

Proprietà

commandLine

Riga di comando di StartTask. 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).

containerSettings

Impostazioni per il contenitore in cui viene eseguito StartTask. 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 StartTask.

maxTaskRetryCount

Numero massimo di tentativi dell'attività. Il servizio Batch ritenta un'attività se il codice di uscita è diverso da zero. Si noti che questo valore controlla in modo specifico il numero di tentativi. Il servizio Batch proverà l'attività una sola volta e potrebbe quindi riprovare fino a questo limite. Ad esempio, se il numero massimo di tentativi è 3, Batch prova l'attività fino a 4 volte (un tentativo iniziale e 3 tentativi). Se il numero massimo di tentativi è 0, il servizio Batch non ritenta l'attività. Se il numero massimo di tentativi è -1, il servizio Batch ritenta l'attività senza limiti.

resourceFiles

Elenco di file scaricati dal servizio Batch nel nodo di calcolo prima di eseguire la riga di comando. È 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. I file elencati in questo elemento si trovano nella directory di lavoro dell'attività.

userIdentity

Identità utente con cui viene eseguito StartTask. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività.

waitForSuccess

Indica se il servizio Batch deve attendere il completamento di StartTask( ovvero uscire con il codice di uscita 0) prima di pianificare qualsiasi attività nel nodo di calcolo. Se true e StartTask non riesce in un nodo, il servizio Batch ritenta l'avvio fino al numero massimo di tentativi (maxTaskRetryCount). Se l'attività non è ancora stata completata correttamente dopo tutti i tentativi, il servizio Batch contrassegna il nodo inutilizzabile e non pianifica attività. Questa condizione può essere rilevata tramite lo stato del nodo di calcolo e i dettagli dell'errore. Se false, il servizio Batch non attenderà il completamento di StartTask. In questo caso, è possibile avviare l'esecuzione di altre attività nel nodo di calcolo mentre StartTask è ancora in esecuzione; e anche se StartTask ha esito negativo, le nuove attività continueranno a essere pianificate nel nodo di calcolo. Il valore predefinito è true.

Dettagli proprietà

commandLine

Riga di comando di StartTask. 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

containerSettings

Impostazioni per il contenitore in cui viene eseguito StartTask. 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 StartTask.

environmentSettings?: EnvironmentSetting[]

Valore della proprietà

maxTaskRetryCount

Numero massimo di tentativi dell'attività. Il servizio Batch ritenta un'attività se il codice di uscita è diverso da zero. Si noti che questo valore controlla in modo specifico il numero di tentativi. Il servizio Batch proverà l'attività una sola volta e potrebbe quindi riprovare fino a questo limite. Ad esempio, se il numero massimo di tentativi è 3, Batch prova l'attività fino a 4 volte (un tentativo iniziale e 3 tentativi). Se il numero massimo di tentativi è 0, il servizio Batch non ritenta l'attività. Se il numero massimo di tentativi è -1, il servizio Batch ritenta l'attività senza limiti.

maxTaskRetryCount?: number

Valore della proprietà

number

resourceFiles

Elenco di file scaricati dal servizio Batch nel nodo di calcolo prima di eseguire la riga di comando. È 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. I file elencati in questo elemento si trovano nella directory di lavoro dell'attività.

resourceFiles?: ResourceFile[]

Valore della proprietà

userIdentity

Identità utente con cui viene eseguito StartTask. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività.

userIdentity?: UserIdentity

Valore della proprietà

waitForSuccess

Indica se il servizio Batch deve attendere il completamento di StartTask( ovvero uscire con il codice di uscita 0) prima di pianificare qualsiasi attività nel nodo di calcolo. Se true e StartTask non riesce in un nodo, il servizio Batch ritenta l'avvio fino al numero massimo di tentativi (maxTaskRetryCount). Se l'attività non è ancora stata completata correttamente dopo tutti i tentativi, il servizio Batch contrassegna il nodo inutilizzabile e non pianifica attività. Questa condizione può essere rilevata tramite lo stato del nodo di calcolo e i dettagli dell'errore. Se false, il servizio Batch non attenderà il completamento di StartTask. In questo caso, è possibile avviare l'esecuzione di altre attività nel nodo di calcolo mentre StartTask è ancora in esecuzione; e anche se StartTask ha esito negativo, le nuove attività continueranno a essere pianificate nel nodo di calcolo. Il valore predefinito è true.

waitForSuccess?: boolean

Valore della proprietà

boolean