Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantCe navigateur n’est plus pris en charge.
Effectuez une mise à niveau vers Microsoft Edge pour tirer parti des dernières fonctionnalités, des mises à jour de sécurité et du support technique.
Azure DevOps Services | Azure DevOps Server 2022 | Azure DevOps Server 2020
Découvrez comment utiliser en toute sécurité des variables et des paramètres pour collecter les entrées des utilisateurs du pipeline. Pour plus d’informations, consultez les articles suivants :
Soyez prudent avec les variables secrètes. Les méthodes recommandées pour définir des variables secrètes incluent l’utilisation de l’interface utilisateur, la création d’un groupe de variables ou l’utilisation d’un groupe de variables source à partir d’Azure Key Vault. Pour en savoir plus, consultez Définir des variables secrètes.
Les variables servent de méthode pratique pour collecter les entrées utilisateur en amont et faciliter le transfert de données entre les étapes du pipeline. Toutefois, faites preuve de prudence lors de l’utilisation de variables. Par défaut, les variables nouvellement créées, définies dans YAML ou scriptées, sont en lecture-écriture. Les étapes en aval peuvent modifier de manière inattendue les valeurs des variables.
Par exemple, considérez l’extrait de code de script suivant :
msbuild.exe myproj.proj -property:Configuration=$(MyConfig)
Si une étape précédente est en cours MyConfig
Debug & deltree /y c:
, cela peut entraîner des conséquences inattendues. Bien que cet exemple supprime simplement le contenu de votre agent de build, il met en évidence le danger potentiel de ces paramètres.
Vous pouvez définir les variables en lecture seule.
Les variables système comme Build.SourcesDirectory
, les variables de sortie de tâche et les variables de file d’attente sont toujours en lecture seule.
Les variables créées en YAML ou créées au moment de l’exécution par un script peuvent être définies en lecture seule.
Quand un script ou une tâche crée une variable, ils peuvent passer l’indicateur isReadonly=true
dans leur commande de journalisation pour que la variable soit en lecture seule.
Dans YAML, vous pouvez spécifier des variables en lecture seule à l’aide de la clé spécifique suivante :
variables:
- name: myReadOnlyVar
value: myValue
readonly: true
Lors de la définition d’une variable dans l’éditeur d’interface utilisateur pipelines, vous pouvez autoriser les utilisateurs à remplacer sa valeur pendant l’exécution du pipeline. Ces variables sont appelées variables de temps d’attente et sont toujours définies dans l’éditeur d’interface utilisateur pipelines.
Les variables de file d’attente sont exposées à l’utilisateur final quand il exécute manuellement un pipeline, et il peut changer leurs valeurs.
Les utilisateurs ont besoin de l’autorisation Modifier la configuration de build en file d’attente sur le pipeline pour spécifier des variables définies au moment de la mise en file d’attente.
L’interface utilisateur et l’API REST utilisées pour exécuter un pipeline permettent aux utilisateurs de définir de nouvelles variables au moment de la mise en file d’attente.
Au début d’Azure Pipelines, cette fonctionnalité a rencontré les problèmes suivants :
Pour résoudre ces problèmes, nous avons défini un paramètre pour limiter les variables qui peuvent être définies au moment de la file d’attente. Avec ce paramètre activé, seules ces variables explicitement marquées comme « Settable au moment de la file d’attente » peuvent être définies. En d’autres termes, vous pouvez définir toutes les variables au moment de la file d’attente, sauf si ce paramètre est activé.
Le paramètre est conçu pour fonctionner au niveau de l’organisation et du projet.
L’exemple suivant montre que le paramètre est activé et que votre pipeline définit une variable nommée my_variable
qui n’est pas définie au moment de la file d’attente.
Ensuite, supposons que vous voulez exécuter le pipeline. Le panneau Variables n’affiche aucune variable, et le bouton Ajouter une variable est manquant.
L’utilisation des builds - File d’attente et exécutions - Exécuter des appels d’API REST de pipeline pour mettre en file d’attente une exécution de pipeline et définir la valeur d’une my_variable
nouvelle variable échoue avec une erreur similaire à ce qui suit.
{
"$id": "1",
"innerException": null,
"message": "You can't set the following variables (my_variable). If you want to be able to set these variables, then edit the pipeline and select Settable at queue time on the variables tab of the pipeline editor.",
"typeName": "Microsoft.Azure.Pipelines.WebApi.PipelineValidationException, Microsoft.Azure.Pipelines.WebApi",
"typeKey": "PipelineValidationException",
"errorCode": 0,
"eventId": 3000
}
Contrairement aux variables, un pipeline en cours d’exécution ne peut pas modifier les paramètres du pipeline.
Les paramètres ont des types de données tels que number
et string
, et ils peuvent être limités à des sous-ensembles de valeurs spécifiques. Cette restriction est utile lorsqu’un aspect configurable par l’utilisateur du pipeline ne doit accepter que les valeurs d’une liste prédéfinie, ce qui garantit que le pipeline n’accepte pas de données arbitraires.
Les pipelines peuvent référencer des tâches exécutées dans le pipeline. Certaines tâches incluent un arguments
paramètre qui vous permet de spécifier d’autres options pour la tâche.
Lorsque le paramètre Activer la validation des arguments des tâches de l’interpréteur de commandes est activé, le paramètre arguments fait l’objet d’une révision pour s’assurer que l’interpréteur de commandes exécute correctement des caractères tels que des points-virgules, des guillemets et des parenthèses. Comme pour les variables de limite qui peuvent être définies au moment de la file d’attente, vous pouvez configurer la validation des paramètres Activer les arguments des tâches shell au niveau de l’organisation ou du projet sous Paramètres> des paramètres des pipelines.>
Lorsque cette fonctionnalité est activée, tous les problèmes de validation liés au arguments
paramètre déclenchent un message d’erreur comme celui-ci :
Detected characters in arguments that may not be executed correctly by the shell. Please escape special characters using backtick (`).
Pour résoudre ce problème, ajustez les arguments en échappant des caractères spéciaux, comme indiqué dans le message d’erreur. Cette validation s’applique au arguments
paramètre dans les tâches spécifiques suivantes :
Sécuriser votre infrastructure partagée
Événements
Créer des applications et des agents IA
17 mars, 21 h - 21 mars, 10 h
Rejoignez la série de rencontres pour créer des solutions IA évolutives basées sur des cas d’usage réels avec d’autres développeurs et experts.
S’inscrire maintenantEntrainement
Module
Ce module est conçu pour aider les apprenants à comprendre l’importance de la configuration des pipelines pour utiliser des variables et des paramètres en toute sécurité dans Azure DevOps.