Rendere le variabili read-only in una pipeline di Azure DevOps

di Matteo Tumiati, in DevOps,

Come in qualsiasi altro linguaggio, anche nelle pipeline YAML di Azure DevOps è possibile sovrascrivere il valore di alcune variabili. Questo potrebbe non essere sempre un comportamento desiderato e quindi si può utilizzare il concetto delle read-only variables per evitare potenziali rischi. Vediamo due esempi differenti:

variables:
  - name: nome
    value: mario
  - name: cognome
    value: rossi
    readonly: true

steps:
  - checkout: none
  - bash: |
      echo "##vso[task.setvariable variable=nome;]marco" 
      echo "##vso[task.setvariable variable=cognome;]verdi"
    name: SetVars

In questo primo esempio, abbiamo fatto uso di due variabili, una "classica" e una marcata con l'attributo readonly. Nella pipeline abbiamo quindi inserito un task che prova a sovrascrivere i valori globali definiti all'inizio e il risultato è che il nome verrà rimpiazzato correttamente, mentre nel secondo caso verrà lanciato un errore e la pipeline terminerà l'esecuzione perchè il valore non è riscrivibile. Di fatto, abbiamo realizzato una variabile immutabile per tutto il corso di esecuzione.

Tuttavia, qualora volessimo limitare lo scope solo ad un task, possiamo ricorrere a questo secondo metodo:

variables:
  - name: nome
    value: mario
  - name: cognome
    value: rossi

steps:
  - checkout: none
  - bash: |
      echo "##vso[task.setvariable variable=nome;]marco" 
      echo "##vso[task.setvariable variable=cognome;]verdi"
    name: SetVars
    target:
      settableVariables:
        - nome

Le variabili sono definite a livello globale senza alcun attributo aggiuntivo, ma nello step in cui dobbiamo riscrivere il loro valore, aggiungiamo il target settableVariables con l'elenco delle variabili che vogliamo sovrascrivere. In questo modo, possiamo limitare l'accesso e la modifica delle variabili e l'esecuzione del task procederà in modo del tutto normale, perchè verrà generato soltanto un warning anziché un errore, qualora cercassimo di cambiarne il valore. Se vogliamo impedire la modifica di tutte le variabili, ci basterà impostare il valore none anziché elencarle tutte, rendendo il task più sicuro.

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi