JobManagerTask interface
L'attività Gestione processi viene avviata automaticamente al momento della creazione del processo. Il servizio Batch tenta di pianificare l'attività di Gestione processi prima di qualsiasi altra attività nel processo. Quando si riduce un pool, il servizio Batch tenta di mantenere i nodi in cui le attività di Gestione processi vengono eseguite il più a lungo possibile, ovvero i nodi di calcolo che eseguono attività "normali" vengono rimossi prima che i nodi di calcolo eseguano attività di Gestione processi. Quando un'attività di Gestione processi ha esito negativo e deve essere riavviata, il sistema tenta di pianificarlo con la priorità più alta. Se non sono disponibili nodi di calcolo inattivi, il sistema può terminare una delle attività in esecuzione nel pool e restituirla alla coda per fare spazio al riavvio dell'attività di Gestione processi. Si noti che un'attività di Gestione processi in un processo non ha la priorità su Attività in altri processi. In Tutti i processi vengono osservate solo le priorità a livello di lavoro. Ad esempio, se è necessario riavviare un processo con priorità 0 in un processo con priorità 0, le attività di un processo con priorità 1 non verranno spostate. 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à
| allow |
Indica se l'attività di Gestione processi può essere eseguita in un nodo di calcolo con priorità bassa. Il valore predefinito è true. |
| application |
Elenco di pacchetti dell'applicazione che il servizio Batch distribuirà nel nodo di calcolo prima di eseguire la riga di comando. I pacchetti dell'applicazione vengono scaricati e distribuiti in una directory condivisa, non nella directory di lavoro attività. Pertanto, se un pacchetto dell'applicazione a cui si fa riferimento è già presente nel nodo di calcolo ed è aggiornato, non viene scaricato nuovamente; viene usata la copia esistente nel nodo di calcolo. Se non è possibile installare un pacchetto dell'applicazione a cui si fa riferimento, ad esempio perché il pacchetto è stato eliminato o perché il download non è riuscito, l'attività ha esito negativo. |
| authentication |
Impostazioni per un token di autenticazione che l'attività può usare per eseguire operazioni del servizio Batch. Se questa proprietà è impostata, il servizio Batch fornisce all'attività un token di autenticazione che può essere usato per autenticare le operazioni del servizio Batch senza richiedere una chiave di accesso dell'account. Il token viene fornito tramite la variabile di ambiente AZ_BATCH_AUTHENTICATION_TOKEN. Le operazioni che l'attività può eseguire usando il token dipendono dalle impostazioni. Ad esempio, un'attività può richiedere autorizzazioni di processo per aggiungere altre attività al processo o controllare lo stato del processo o di altre attività nel processo. |
| command |
Riga di comando dell'attività Gestione processi. 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à Gestione processi. |
| container |
Impostazioni per il contenitore in cui viene eseguita l'attività Gestione processi. Se il pool che eseguirà questa attività ha impostato containerConfiguration, è necessario impostare anche questo valore. Se il pool che eseguirà questa attività non include containerConfiguration impostato, non deve essere impostato. 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. |
| display |
Nome visualizzato dell'attività Gestione processi. Non deve essere univoco e può contenere caratteri Unicode fino a una lunghezza massima di 1024. |
| environment |
Elenco delle impostazioni delle variabili di ambiente per l'attività Gestione processi. |
| id | Stringa che identifica in modo univoco l'attività di Gestione processi 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. |
| kill |
Indica se il completamento dell'attività di Gestione processi indica il completamento dell'intero processo. Se true, al termine dell'attività di Gestione processi, il servizio Batch contrassegna il processo come completato. Se le attività sono ancora in esecuzione in questo momento (diverse dalla versione del processo), tali attività vengono terminate. Se false, il completamento dell'attività di Gestione processi non influisce sullo stato del processo. In questo caso, è necessario usare l'attributo onAllTasksComplete per terminare il processo oppure terminare in modo esplicito un client o un utente. Un esempio è se Gestione processi crea un set di attività, ma non assume altro ruolo nell'esecuzione. Il valore predefinito è true. Se si usano gli attributi onAllTasksComplete e onTaskFailure per controllare la durata del processo e l'uso dell'attività di Gestione processi solo per creare le attività per il processo (non per monitorare lo stato di avanzamento), è importante impostare killJobOnCompletion su false. |
| output |
Elenco di file che il servizio Batch caricherà dal nodo di calcolo dopo l'esecuzione della riga di comando. Per le attività a istanze multiple, i file verranno caricati solo dal nodo di calcolo in cui viene eseguita l'attività primaria. |
| required |
Numero di slot di pianificazione necessari per l'esecuzione dell'attività. Il valore predefinito è 1. Un'attività può essere pianificata solo per l'esecuzione in un nodo di calcolo se il nodo dispone di slot di pianificazione gratuiti sufficienti. Per le attività a istanze multiple, deve essere 1. |
| resource |
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. |
| run |
Indica se l'attività Job Manager richiede l'uso esclusivo del nodo di calcolo in cui viene eseguito. Se true, nessun'altra attività verrà eseguita nello stesso nodo purché gestione processi sia in esecuzione. Se false, altre attività possono essere eseguite contemporaneamente con Gestione processi in un nodo di calcolo. L'attività di Gestione processi viene conteggiato normalmente rispetto al limite di attività simultanee del nodo di calcolo, quindi questo è rilevante solo se il nodo di calcolo consente più attività simultanee. Il valore predefinito è true. |
| user |
Identità utente con cui viene eseguita l'attività Gestione processi. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività. |
Dettagli proprietà
allowLowPriorityNode
Indica se l'attività di Gestione processi può essere eseguita in un nodo di calcolo con priorità bassa. Il valore predefinito è true.
allowLowPriorityNode?: boolean
Valore della proprietà
boolean
applicationPackageReferences
Elenco di pacchetti dell'applicazione che il servizio Batch distribuirà nel nodo di calcolo prima di eseguire la riga di comando. I pacchetti dell'applicazione vengono scaricati e distribuiti in una directory condivisa, non nella directory di lavoro attività. Pertanto, se un pacchetto dell'applicazione a cui si fa riferimento è già presente nel nodo di calcolo ed è aggiornato, non viene scaricato nuovamente; viene usata la copia esistente nel nodo di calcolo. Se non è possibile installare un pacchetto dell'applicazione a cui si fa riferimento, ad esempio perché il pacchetto è stato eliminato o perché il download non è riuscito, l'attività ha esito negativo.
applicationPackageReferences?: ApplicationPackageReference[]
Valore della proprietà
authenticationTokenSettings
Impostazioni per un token di autenticazione che l'attività può usare per eseguire operazioni del servizio Batch. Se questa proprietà è impostata, il servizio Batch fornisce all'attività un token di autenticazione che può essere usato per autenticare le operazioni del servizio Batch senza richiedere una chiave di accesso dell'account. Il token viene fornito tramite la variabile di ambiente AZ_BATCH_AUTHENTICATION_TOKEN. Le operazioni che l'attività può eseguire usando il token dipendono dalle impostazioni. Ad esempio, un'attività può richiedere autorizzazioni di processo per aggiungere altre attività al processo o controllare lo stato del processo o di altre attività nel processo.
authenticationTokenSettings?: AuthenticationTokenSettings
Valore della proprietà
commandLine
Riga di comando dell'attività Gestione processi. 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à Gestione processi.
constraints?: TaskConstraints
Valore della proprietà
containerSettings
Impostazioni per il contenitore in cui viene eseguita l'attività Gestione processi. Se il pool che eseguirà questa attività ha impostato containerConfiguration, è necessario impostare anche questo valore. Se il pool che eseguirà questa attività non include containerConfiguration impostato, non deve essere impostato. 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à
displayName
Nome visualizzato dell'attività Gestione processi. Non deve essere univoco e può contenere caratteri Unicode fino a una lunghezza massima di 1024.
displayName?: string
Valore della proprietà
string
environmentSettings
Elenco delle impostazioni delle variabili di ambiente per l'attività Gestione processi.
environmentSettings?: EnvironmentSetting[]
Valore della proprietà
id
Stringa che identifica in modo univoco l'attività di Gestione processi 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.
id: string
Valore della proprietà
string
killJobOnCompletion
Indica se il completamento dell'attività di Gestione processi indica il completamento dell'intero processo. Se true, al termine dell'attività di Gestione processi, il servizio Batch contrassegna il processo come completato. Se le attività sono ancora in esecuzione in questo momento (diverse dalla versione del processo), tali attività vengono terminate. Se false, il completamento dell'attività di Gestione processi non influisce sullo stato del processo. In questo caso, è necessario usare l'attributo onAllTasksComplete per terminare il processo oppure terminare in modo esplicito un client o un utente. Un esempio è se Gestione processi crea un set di attività, ma non assume altro ruolo nell'esecuzione. Il valore predefinito è true. Se si usano gli attributi onAllTasksComplete e onTaskFailure per controllare la durata del processo e l'uso dell'attività di Gestione processi solo per creare le attività per il processo (non per monitorare lo stato di avanzamento), è importante impostare killJobOnCompletion su false.
killJobOnCompletion?: boolean
Valore della proprietà
boolean
outputFiles
Elenco di file che il servizio Batch caricherà dal nodo di calcolo dopo l'esecuzione della riga di comando. Per le attività a istanze multiple, i file verranno caricati solo dal nodo di calcolo in cui viene eseguita l'attività primaria.
outputFiles?: OutputFile[]
Valore della proprietà
requiredSlots
Numero di slot di pianificazione necessari per l'esecuzione dell'attività. Il valore predefinito è 1. Un'attività può essere pianificata solo per l'esecuzione in un nodo di calcolo se il nodo dispone di slot di pianificazione gratuiti sufficienti. Per le attività a istanze multiple, deve essere 1.
requiredSlots?: number
Valore della proprietà
number
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à
runExclusive
Indica se l'attività Job Manager richiede l'uso esclusivo del nodo di calcolo in cui viene eseguito. Se true, nessun'altra attività verrà eseguita nello stesso nodo purché gestione processi sia in esecuzione. Se false, altre attività possono essere eseguite contemporaneamente con Gestione processi in un nodo di calcolo. L'attività di Gestione processi viene conteggiato normalmente rispetto al limite di attività simultanee del nodo di calcolo, quindi questo è rilevante solo se il nodo di calcolo consente più attività simultanee. Il valore predefinito è true.
runExclusive?: boolean
Valore della proprietà
boolean
userIdentity
Identità utente con cui viene eseguita l'attività Gestione processi. Se omesso, l'attività viene eseguita come utente non amministrativo univoco per l'attività.
userIdentity?: UserIdentity