Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de changer d’annuaire.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer d’annuaire.
Les jeux de valeurs d’une bibliothèque de variables fournissent d’autres ensembles de valeurs pour les variables définies, prenant en charge des scénarios tels que des configurations spécifiques à l’environnement (par exemple, dev, test, prod), des tests A/B ou un changement de source de données dans le même espace de travail.
Chaque jeu de valeurs est créé en tant que collection de pointeurs vers la valeur des variables par défaut, qui peut être substituée en fonction des besoins. Un seul ensemble de valeurs peut être actif à la fois pour un espace de travail donné, et les utilisateurs peuvent facilement changer l’ensemble actif via l’interface utilisateur ou l’API.
Les jeux de valeurs sont nommés de manière unique dans la bibliothèque et peuvent être renommés, réorganisés (uniquement via git ou la mise à jour avec l’API de définition) ou supprimés (avec des protections pour empêcher la suppression du jeu actif sans réaffectation). Le système effectue le suivi des modifications et applique des limites de taille pour garantir les performances, et toute modification apportée aux jeux de valeurs est validée avant l’enregistrement. Cette structure permet une gestion robuste de la configuration, ce qui permet aux développeurs d’automatiser les déploiements et de maintenir la cohérence entre plusieurs environnements et étapes.
Structure et implémentation des jeux de valeurs
La définition de l’élément bibliothèque de variables est structurée pour prendre en charge plusieurs jeux de valeurs. Dans le schéma de l’élément (sa définition JSON), toutes les variables et leurs valeurs par défaut sont répertoriées dans une section primaire (souvent appelée fichier « Valeurs par défaut » dans Git). Chaque jeu de valeurs supplémentaire est stocké sous la forme d’une entité distincte (ou d’un fichier) contenant uniquement les variables qui diffèrent de la valeur par défaut. En d’autres termes, si la valeur d’une variable dans un jeu de valeurs donné est identique à la valeur par défaut, elle n’est pas explicitement répétée dans la définition de ce jeu de valeurs.
Jeu de valeurs par défaut : Toujours présent et contient la valeur de base de chaque variable (ainsi que les métadonnées telles que le nom et le type). Le fichier de valeurs par défaut énumère toutes les variables avec leurs valeurs par défaut (primaires).
Autre jeu de valeurs : pour chaque jeu de valeurs supplémentaire (par exemple, un jeu de valeurs « Test » ou « Prod »), la définition répertorie uniquement les variables où la valeur remplace la valeur par défaut. Si une variable n’est pas répertoriée dans un fichier de jeu de valeurs particulier, elle utilise implicitement la valeur par défaut pour ce jeu.
Exemple : si vous avez une variable ConnectionString avec la valeur par défaut « dev-server », et que vous créez un jeu de valeurs « Production » substituant ceci à « prod-server », la définition par défaut aura ConnectionString = « dev-server », et le fichier du jeu de valeurs « Production » contiendra ConnectionString = « prod-server » (et rien pour les variables qui restent inchangées). Cette approche conserve les définitions des ensembles de valeurs maigres et met uniquement en évidence les différences.
Représentation du contrôle de code source
Dans l’intégration Git de Fabric, le schéma ci-dessus se traduit par plusieurs fichiers sous le dossier de la bibliothèque de variables. Par conception, chaque jeu de valeurs est sérialisé dans son propre fichier JSON (nommé après le jeu de valeurs) contenant ses remplacements, séparés du fichier de valeurs par défaut. Par exemple, un élément VL « MyVars » peut avoir :
MyVars_Default.json : valeurs par défaut de toutes les variables. MyVars_Prod.json : seules les variables dont les valeurs diffèrent pour l’étape « Prod ». MyVars_Test.json : seules les variables dont les valeurs diffèrent pour l’étape « Test ».
Cette séparation claire signifie que vous pouvez suivre les modifications apportées à la configuration de chaque environnement indépendamment dans le contrôle de code source.
Il est important de noter que la sélection du jeu de valeurs actif ne fait pas partie de ces fichiers de définition : elle est stockée en tant qu’état d’élément (paramètre au niveau de l’espace de travail) afin que le déploiement ou l’importation de l’élément ne remplace pas le jeu de valeurs actuellement actif dans un espace de travail donné. (Plus d’informations sur les jeux de valeurs actifs ci-dessous.)
Schéma et types de données
Les jeux de valeurs n’introduisent pas de nouveaux types de données ; ils contiennent des valeurs des mêmes types définis par chaque variable. La définition d’élément enregistre le nom, le type, la valeur par défaut et la note facultative de chaque variable. Les types de variables complexes tels que la référence d’élément ont des schémas structurés (stockage des ID), mais ces valeurs sont représentées dans chaque jeu de valeurs à l’aide d’une structure JSON cohérente (par exemple, une référence d’élément stocke l’ID d’espace de travail + ID d’élément pour l’élément de cette étape). Tous les fichiers de jeu de valeurs suivent la même structure de schéma que la structure par défaut : essentiellement un mappage des noms de variables à ces valeurs (y compris celles qui diffèrent de la valeur par défaut).
Conventions d’affectation de noms pour les jeux de valeurs
Le nom d’un jeu de valeurs à l’intérieur d’une bibliothèque de variables doit respecter les conventions suivantes :
- N’est pas vide
- N’a pas d’espaces de début ou de fin
- Commence par une lettre ou un trait de soulignement
- Peut inclure des lettres, des chiffres, des traits de soulignement et des traits d’union
- Ne dépasse pas 256 caractères de longueur
Une fois qu’une variable a une valeur définie, si vous essayez de modifier son type, une boîte de dialogue de consentement s’affiche. La boîte de dialogue vous avertit que toutes les valeurs de variable seront réinitialisées et que cette modification pourrait être une modification cassant côté élément consommateur.
Considérations et limitations
Limitations pour les jeux de valeurs alternatifs
- Les autres jeux de valeurs d’une bibliothèque de variables apparaissent dans l’ordre dans lequel vous les avez ajoutés. Actuellement, vous ne pouvez pas les réorganiser dans l’interface utilisateur. Pour changer l’ordre, modifiez directement le fichier JSON.
- Le nom de chaque jeu de valeurs doit être unique dans une bibliothèque de variables.
- Les noms de variables doivent être uniques dans une bibliothèque de variables. Vous pouvez avoir deux variables portant le même nom dans un espace de travail si elles se trouvent dans des éléments différents.
- Il existe toujours une valeur active (et une seule) définie dans une bibliothèque de variables à la fois. Vous ne pouvez pas supprimer un jeu de valeurs lorsqu’il est actif. Pour le supprimer, configurez d’abord une autre valeur définie pour qu’elle soit active. Vous pouvez avoir un ensemble de valeurs actives différent pour chaque étape d’un pipeline de déploiement.