Partager via


Références d’instantanés

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

  1. Ouvrez votre magasin App Configuration dans le portail Azure.
  2. Sélectionnez Explorateur de configuration.
  3. Cliquez sur Créer.
  4. Sélectionnez Référence d’instantané.
  5. Entrez une clé pour la référence. Définissez éventuellement une étiquette.
  6. Choisissez le nom de l’instantané cible dans la liste (ou entrez-le).
  7. 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 :

  1. L’application démarre.
  2. Le fournisseur de configuration récupère les valeurs clés sélectionnées, y compris une référence d’instantané.
  3. Le fournisseur de configuration résout la référence à l’instantané Snapshot_A et charge ses valeurs de clé.
  4. La référence d’instantané est mise à jour pour pointer vers Snapshot_B (toujours immuable).
  5. Le fournisseur de configuration détecte que la clé-valeur de référence de l'instantané a changé.
  6. Le fournisseur de configuration se résout à nouveau. Les valeurs clés de Snapshot_A sont déchargées. Le rechargement de configuration génère les valeurs clés de Snapshot_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.