Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Les références d’instantanés sont des valeurs clés spéciales qui pointent vers un instantané spécifique dans un magasin App Configuration. Ils vous permettent de combiner la sécurité de la configuration immuable (captures instantanées) avec la flexibilité de la modification dynamique de l’instantané qu’une application consomme au moment de l’exécution.
Avec l’utilisation directe de l’instantané, une application sélectionne un instantané par nom dans le code. La modification de l’instantané ciblé nécessite un nouveau déploiement ou une modification de configuration dans le chemin du code qui génère la configuration. Les références d’instantané suppriment cette contrainte : vous chargez une fois une paire clé-valeur de référence, et si le nom de son instantané cible change ultérieurement, les fournisseurs de configuration réactualisent automatiquement la configuration vers le nouvel ensemble immuable.
Pourquoi utiliser des références instantanées ?
Les références instantanées fournissent les éléments suivants :
- Mises à jour simples : Mettez à jour l’instantané référencé sans toucher le code de l’application, même pendant l’exécution.
- Ensembles de configuration immuables : chaque instantané reste inchangé, préservant l’auditabilité et les garanties de restauration.
Fonctionnement
Une référence d’instantané est stockée sous la forme d'une clé-valeur où la valeur contient le nom de l’instantané à utiliser. Lorsqu’un fournisseur de configuration charge des valeurs clés, toutes les références d’instantané parmi les éléments sélectionnés sont automatiquement résolues. Les valeurs clés de l’instantané référencé sont fusionnées dans la configuration de l’application. Si la référence change pour pointer vers un autre instantané, l’actualisation du fournisseur de configuration entraîne le chargement du nouveau contenu d’instantané.
Note
Vous n'avez pas besoin d'appeler une API spécialisée pour adhérer aux références d’instantané. Si vous sélectionnez la clé/valeur qui est une référence d'instantané, la résolution est effectuée automatiquement.
Création d’une référence de capture instantanée
- Ouvrez votre magasin App Configuration dans le portail Azure.
- Sélectionnez Explorateur de configuration.
- Cliquez sur Créer.
- Sélectionnez Référence d’instantané.
- Entrez une clé pour la référence. Définissez éventuellement une étiquette.
- Choisissez le nom de l’instantané cible dans la liste (ou entrez-le).
- Cliquez sur Créer.
Une fois créée, la référence d’instantané s’affiche en même temps que d’autres valeurs clés dans l’Explorateur de configuration.
Consommation de références d’instantanés
Aucun nouveau code n’est requis pour utiliser une référence d’instantané. Si la clé d’une référence d’instantané fait partie des valeurs clés sélectionnées lors de la création de la configuration, le fournisseur résout et charge automatiquement les valeurs clés de l’instantané référencé. Comparez cela à l’utilisation directe des captures instantanées où vous appelez explicitement une API, par SelectSnapshot("SnapshotName"), par exemple, en fixant le choix d’instantané au démarrage, de sorte que le changement nécessite par la suite une modification de code ou un redéploiement.
Comportement d’actualisation
Lorsque l’actualisation est configurée, la modification du nom de l’instantané cible à l’intérieur d’une référence d’instantané déplace en toute transparence l’application pour utiliser la nouvelle capture instantanée :
- L’application démarre.
- Le fournisseur de configuration récupère les valeurs clés sélectionnées, y compris une référence d’instantané.
- Le fournisseur de configuration résout la référence à l’instantané
Snapshot_Aet charge ses valeurs de clé. - La référence d’instantané est mise à jour pour pointer vers
Snapshot_B(toujours immuable). - Le fournisseur de configuration détecte que la clé-valeur de référence de l'instantané a changé.
- Le fournisseur de configuration se résout à nouveau. Les valeurs clés de
Snapshot_Asont déchargées. Le rechargement de configuration génère les valeurs clés deSnapshot_B.
Note
Cette séquence suppose que vous avez configuré l’actualisation pour votre application. Pour plus d’informations sur la configuration de l’actualisation, consultez la configuration dynamique.
Référence d'exemple d'instantané
L’exemple suivant montre une référence d’instantané
{
"key": "app1/snapshot-reference",
"value": "{\"snapshot_name\":\"referenced-snapshot\"}",
"content_type": "application/json; profile=\"https://azconfig.io/mime-profiles/snapshot-ref\"; charset=utf-8",
"tags": {}
}
Comme mentionné, une référence d’instantané est une clé-valeur normale avec certaines contraintes supplémentaires. Les fournisseurs de configuration identifient les références d’instantanés par leur type de contenu spécifique. La valeur d’une référence d’instantané est un objet JSON avec une propriété de nom qui pointe vers l’instantané cible.
Type de contenu d’instantané de référence : application/json; profile="https://azconfig.io/mime-profiles/snapshot-ref"; charset=utf-8
Résolution des conflits de clé
Les instantanés référencées peuvent contenir des clés qui entrent en conflit avec des paires clé-valeur normales (celles situées en dehors d’un instantané). Les fournisseurs de configuration résolvent ces conflits à l’aide de la valeur de la dernière clé vue. Dans le cas d’instantanés, étant donné qu’ils sont résolus immédiatement après avoir été vus, l’ordre lexicographique de la clé de référence d’instantané est un détail important lors de la prise en compte de la valeur finale d’une clé donnée lorsqu’il existe des conflits.
Exemple simplifié
Supposons que votre magasin a ces valeurs de clé normales :
key: message
value: hello-world
key: request-limit
value: 100
Et un instantané contenant :
key: message
value: bye
key: request-limit
value: 8000
Si une référence d’instantané est ajoutée qui pointe vers l’instantané mentionné ci-dessus, la configuration effective finale dépend de la position lexicographique de la clé de référence d’instantané :
| Clé de référence d’instantané | position lexicographique vs message, request-limit |
Valeur finale message |
Valeur finale request-limit |
Pourquoi |
|---|---|---|---|---|
a-snapshot-reference |
Avant les deux | hello-world | 100 | La référence d’instantané est résolue en premier ; les clés normales ultérieures remplacent leurs doublons. |
my-snapshot-reference |
Après message mais avant request-limit |
au revoir | 100 |
message est vu en premier. La référence d’instantané est ensuite résolue et remplace message. Enfin, la normale request-limit remplace la valeur request-limit de l’instantané. |
some-snapshot-reference |
Après les deux | au revoir | 8 000 | La référence à un instantané est résolue en dernier ; ses valeurs remplacent les doublons précédents. |
Considérations et cas de périphérie
- Instantané cible manquant : si la référence pointe vers un nom d’instantané qui n’existe pas ou qui est archivé au-delà de la rétention, le fournisseur ignore la référence.
- Aucune résolution transitive : si un instantané référencé contient une clé-valeur qui est elle-même une référence d’instantané, cette référence interne n’est pas résolue.
- Contrôle d’accès : la lecture d’un instantané via une référence nécessite des autorisations de lecture d’instantanés, de la même façon que la lecture directe d’un instantané.
- Rétention/archivage : Faites attention lorsque vous faites référence à des instantanés archivés, car une fois que l'instantané a expiré, l’application ne pourra plus accéder à la configuration contenue.
Langues disponibles
| Language | Version minimale / état |
|---|---|
| .NET | 8.4.0+ |
| Java | Travail en cours |
| JavaScript | Travail en cours |
| Python | Travail en cours |
| Go | Travail en cours |
Étapes suivantes
Pour plus d’informations, consultez la vue d’ensemble des instantanés.