Condividi tramite


Richieste

Le richieste consentono alle pipeline di specificare quali funzionalità devono essere presenti in un agente per consentire ad Azure DevOps di inviare un processo dalla pipeline all'agente. Nei pool devOps gestiti, le richieste come ImageOverride funzionano esattamente come le richieste in Azure Pipelines, in cui un processo della pipeline viene instradato a un agente specifico con attributi corrispondenti alla domanda, ma alcune richieste, ad esempio WorkFolder e Priority, possono essere usate per configurare gli attributi nell'agente. Questo articolo descrive le richieste disponibili nei pool di DevOps gestiti e come usarle.

Cartella di lavoro

La cartella di lavoro predefinita per gli agenti si trova in genere nell'unità D:\ per Windows o /mnt per Linux e può essere fatto riferimento nella pipeline usando la Agent.WorkFoldervariabile predefinita. È possibile eseguire l'override di questo percorso per modificare sia l'unità che il nome della directory usati all'avvio dell'agente specificando la WorkFolder richiesta nella pipeline. Se si dispone di un pool con stato con un agente in esecuzione dotato di un WorkFolder che corrisponde alla richiesta, la pipeline verrà inviata a quell'agente. Se non si usano pool con stato o non è in esecuzione alcun agente con tale WorkFolder, viene avviato un nuovo agente e configurato per l'uso dell'oggetto designato WorkFolder. La directory specificata viene creata se non è già presente. Se il nome del percorso per l'oggetto WorkFolder non è valido, viene usata la cartella di lavoro dell'agente predefinita.

Configurare la WorkFolder domanda nella demands sezione della pipeline per impostare la cartella di lavoro dell'agente. Se si utilizza un disco dati collegato e si desidera che la cartella di lavoro dell'agente sia su tale disco, utilizzare WorkFolder e specificare una cartella sul disco dati come directory di lavoro dell'agente.

pool: 
  name: fabrikam-managed-pool # Name of Managed DevOps Pool
  demands:
  - WorkFolder -equals c:\custom-work-folder # Windows agent example
  # Use a folder like /user/local/custom-work-folder for Linux
  # or /mnt/storage/sdc/custom-work-folder if you're using a data disk.

Priorità

Priority specifica la priorità del processo. I processi con priorità più alta vengono eseguiti per primi. I valori validi sono: High, Medium, Low. Il valore predefinito è Medium.

Configurare la Priority domanda nella demands sezione della pipeline.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - Priority -equals Low

Le attività sono selezionate dalla coda per l'esecuzione in ordine di priorità. Ad esempio, si dispone di un pool con un'impostazione massima di agenti pari a 10 e una pipeline configurata per l'uso di questo pool. Il pool esegue già 10 pipeline e ne vengono accodati altri 20. Se hai una pipeline con priorità da eseguire, ad esempio per distribuire una correzione urgente, normalmente verrà eseguita dopo il completamento delle 10 pipeline in esecuzione e delle 20 pipeline in coda. Se si imposta la priorità su alta quando si esegue l'accodamento della pipeline dell'hotfix, verrà visualizzato un agente ed eseguito prima delle 20 pipeline in coda in precedenza.

Se più lavori vengono accodati contemporaneamente, è possibile che un lavoro con priorità più bassa venga eseguito prima di uno con priorità più alta.

Nel caso di una singola pipeline con più lavori:

  • Se la pipeline presenta dipendenze che definiscono processi sequenziali, i processi sequenziali vengono eseguiti nell'ordine specificato dalla pipeline indipendentemente dall'impostazione di priorità per ogni processo.
  • Se nella pipeline sono configurati più processi configurati per l'esecuzione in parallelo (impostazione predefinita per le pipeline YAML), i processi vengono accodati contemporaneamente e i processi nella pipeline con priorità più bassa potrebbero essere eseguiti prima che i processi nella pipeline abbiano priorità più alta.

ImageOverride

Se nel pool sono presenti più immagini, è possibile configurare le pipeline per l'uso di un'immagine specifica usando la ImageOverride richiesta e fornendo l'alias dell'immagine da usare. Se si usa un'immagine di Azure Pipelines, è possibile usare il relativo alias predefinito. Per tutte le altre immagini, è necessario configurare gli alias personalizzati.

Nell'esempio seguente una pipeline è configurata per l'esecuzione usando un'immagine configurata con un ubuntu-20.04-gen2 alias.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageOverride -equals ubuntu-20.04-gen2

Importante

Non inserire virgolette intorno al nome dell'alias nella ImageOverride richiesta, anche se ha spazi nel nome.

ImageVersionOverride

Se si utilizza una Azure Compute Gallery o un'immagine di Azure Marketplace immagine e si desidera utilizzare una versione specifica dell'immagine anziché la versione specificata dalla configurazione dell'immagine, è possibile utilizzare la richiesta di domanda di ImageVersionOverride. Ad esempio, è possibile usarlo per convalidare una nuova versione dell'immagine prima di promuoverla come più recente per un'immagine. Negli esempi seguenti viene specificato un ImageVersionOverride di 2.0.0.

Configurare la ImageVersionOverride domanda nella demands sezione della pipeline.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageVersionOverride -equals 2.0.0

Capacità Personalizzate

Se si dispone di pool con stato e si vuole un modo per eseguire un processo in un'istanza specifica dell'agente in esecuzione, è possibile usare la CustomCapabilities richiesta.

Importante

La CustomCapabilities richiesta si applica solo agli agenti nei pool con stato. Quando si usano pool senza stato, si ottiene una nuova immagine dell'agente per ogni processo.

Quando si specifica una CustomCapabilities richiesta nella pipeline, se una pipeline con la stessa richiesta è stata eseguita in precedenza e l'agente con stato persistente che ha eseguito la pipeline in precedenza è ancora online, tale agente verrà usato per eseguire la pipeline. Se nessun agente online corrisponde alla CustomCapabilities richiesta, viene assegnato un agente dal pool, etichettato con la CustomCapabilities richiesta, e viene usato per eseguire la pipeline. I lavori successivi con la stessa CustomCapabilities richiesta utilizzeranno l'istanza dell'agente contrassegnata per eseguire i loro compiti, purché tale agente sia online.

Nell'esempio seguente viene eseguita una pipeline usando l'immagine windows-2022 di Azure Pipelines in un pool con stato persistente. Se un agente online è pronto per accettare lavori e viene contrassegnato con l'attributo CustomCapabilities (impostato da una pipeline eseguita in precedenza sull'agente), quell'agente verrà utilizzato per eseguire questa pipeline. Se nessun agente online corrisponde a questa richiesta, l'agente disponibile successivo viene usato per eseguire il processo e l'agente viene contrassegnato con l'attributo CustomCapabilities . Le esecuzioni future della pipeline con questa richiesta verranno eseguite su questo agente, se è disponibile online e pronto per i lavori.

pool: 
  name: fabrikam-dev-pool # Name of Managed DevOps Pool
  demands:
  - ImageOverride -equals windows-2022
  - CustomCapabilities -equals MyCustomValue

Ad esempio, si dispone di un repository di grandi dimensioni che richiede molto tempo per la clonazione e si dispone di più pipeline eseguite da questo repository. L'utilizzo dello stesso CustomCapabilities carico nelle pipeline potrebbe consentire alla seconda pipeline di funzionare più rapidamente grazie all'uso di un agente con il repository già clonato.

Vedi anche