Présentation de la mise en cache et de la persistance

Cette page s'applique à Apigee et à Apigee hybrid.

Consultez la documentation d'Apigee Edge.

Les fonctionnalités de persistance Apigee incluent les mises en caches, les mappages clé/valeur et les ensembles de propriétés. Si vous utilisez Apigee hybrid, vous pouvez utiliser les secrets Kubernetes pour conserver des données sensibles.

Fonctionnalité Utilisation
Caches En utilisant des stratégies pour la mise en cache à usage général, vous pouvez conserver tous les objets requis par votre proxy sur plusieurs sessions de requête/réponse. Vous pouvez également mettre en cache la réponse d'une ressource backend avec la règle ResponseCache. La mise en cache des réponses est particulièrement utile lorsque les données de backend ne sont mises à jour que de façon périodique. La règle ResponseCache peut réduire les appels aux sources de données de backend.
Mappages clé-valeur Les mappages clé-valeur (KVM) fournissent un magasin d'exécution général pour les données susceptibles de changer régulièrement. Par exemple, les données de session utilisateur, le panier, etc. Les entrées KVM peuvent être chiffrées.
Ensembles de propriétés Les ensembles de propriétés conviennent pour le stockage des données de configuration qui ne changent pas souvent.
Codes secrets Kubernetes (Apigee hybride uniquement) Utilisez des codes secrets pour stocker les données sensibles, telles que les identifiants de l'utilisateur.

Mise en cache

Les ressources de cache spécifiques à un environnement sont créées de manière dynamique lorsqu'une règle de cache s'exécute dans un flux de proxy d'API. Les règles de cache incluent les règles PopulateCache, LookupCache, InvalidateCache et ResponseCache.

Un élément mis en cache reste en mémoire (dans le cache L1) pendant une seconde. Vous ne pouvez pas modifier cette configuration. Au bout d'une seconde, l'objet mis en cache est placé dans une base de données (cache L2) où il reste disponible jusqu'à l'expiration du cache. Pour en savoir plus, consultez la section Niveaux de cache en mémoire et de cache persistant. Vous gérez les détails du cache, tels que le délai d'expiration, en configurant une règle de cache. Une API Apigee est fournie, qui vous permet de lister et de supprimer des ressources de cache.

Lorsque vous utilisez des règles de cache, configurez les clés de cache pour garantir l'unicité des clés de valeur mises en cache. Une clé de cache, ainsi que d'autres valeurs pouvant être configurées, vous offre un moyen fiable de récupérer les mêmes données que celles que vous stockez. La taille et la disponibilité du cache sont soumises à certaines limites.

Vous pouvez utiliser un cache pour :

  • Réduire la latence et le trafic. Les requêtes sont satisfaites plus rapidement, avec des représentations réutilisées.
  • Conserver des données entre les transactions. Vous pouvez stocker les données de session pour les réutiliser dans des transactions HTTP.
  • Soutenir la sécurité. Établissez le périmètre d'accès aux entrées de cache, de sorte qu'elles ne soient accessibles que dans un environnement particulier ou par un proxy d'API spécifique.

Mise en cache de réponses de backend

Vous pouvez mettre en cache la réponse d'une ressource backend avec la règle ResponseCache.

Cela s'avère particulièrement utile lorsque les données de backend ne sont mises à jour que périodiquement. La règle ResponseCache peut réduire les appels aux sources de données de backend.

Avec la règle ResponseCache, vous pouvez également demander à Apigee d'examiner certains en-têtes de mise en cache de la réponse HTTP et de prendre des mesures selon les instructions d'en-tête. Par exemple, pour les réponses des cibles de backend, Apigee accepte l'en-tête Cache-Control. Cet en-tête peut être utilisé, entre autres, pour contrôler l'âge maximal d'une réponse mise en cache. Pour en savoir plus, consultez la section Compatibilité avec les en-têtes de réponse HTTP.

Mise en cache à usage général à court terme

En utilisant des règles pour la mise en cache à usage général, vous pouvez conserver tous les objets requis par votre proxy dans plusieurs sessions de requête/réponse.

Avec les règles PopulateCache ,LookupCache et InvalidateCache, vous pouvez renseigner, récupérer et vider les données mises en cache au moment de l'exécution.

Par exemple, vous pouvez stocker temporairement les éléments suivants :

  • ID de session pour la gestion de session
  • Identifiants des appels sortants (tels que les clés API ou les jetons d'accès OAuth)
  • Contenu de réponse qui doit être paginé pour les applications

Au moment de l'exécution, vos règles de cache copient les valeurs entre les variables du proxy et le cache configuré que vous spécifiez. Lorsqu'une valeur est placée dans le cache, elle est copiée à partir de la variable spécifiée dans le cache. Une fois récupérée à partir du cache, elle est copiée dans la variable pour être utilisée par votre proxy.

Pour obtenir un exemple de code, consultez la section Exemple : Mise en cache à usage général.

Gérer le cache avec l'API Apigee

Vous pouvez répertorier et supprimer des caches à l'aide de l'API caches.

Persistance à long terme avec des mappages de clés/valeurs (KVM)

Pour stocker indéfiniment des données structurées chiffrées ou non chiffrées, vous pouvez créer et renseigner des mappages de clés-valeurs (KVM) contenant des paires clé/valeur arbitraires. Par exemple, vous pouvez stocker les éléments suivants :

  • Un mappage associant les adresses IP aux codes de pays
  • Une liste des adresses IP autorisées et refusées
  • Un mappage associant les URL longues aux URL raccourcies.
  • Des données propres à l'environnement, telles que le nombre de quotas ou les délais d'expiration des jetons OAuth.

Les KVM peuvent avoir l'un des trois champs d'application suivants : organisation, environnement, apiproxy. Par exemple, si des paires clé/valeur doivent être utilisées pour toutes les API d'une organisation, créez un KVM au niveau de l'organisation. Si seul un proxy d'API spécifique doit avoir accès à des clés-valeurs, créez la KVM au niveau de l'apiproxy. Pour plus d'informations, consultez la section Utiliser des mappages clé-valeur.

Ensembles de propriétés

Un ensemble de propriétés est une collection personnalisée de paires clé/valeur qui stockent des données. Les proxys d'API peuvent récupérer ces données lors de leur exécution.

En règle générale, vous utilisez des ensembles de propriétés pour stocker des données qui n'expirent pas et qui ne devraient pas être codées en dur dans votre logique de proxy d'API, telles que les données de configuration. Vous pouvez accéder aux données d'un ensemble de propriétés n'importe où dans un proxy où vous pouvez accéder aux variables de flux.

Un cas d'utilisation courant pour les ensembles de propriétés consiste à fournir des valeurs qui sont associées à un environnement ou à un autre. Par exemple, vous pouvez créer un ensemble de propriétés au niveau de l'environnement avec des valeurs de configuration spécifiques aux proxys exécutés dans votre environnement de test, et un autre défini pour votre environnement de production.

Pour en savoir plus, consultez la section Utiliser des ensembles de propriétés.

Codes secrets Kubernetes

(Apigee hybride uniquement) Si vous utilisez déjà Kubernetes pour la gestion des codes secrets dans un coffre-fort personnalisé pour les données sensibles, vous pouvez envisager d'utiliser des codes secrets Kubernetes. Comme pour les données de KVM, vous pouvez accéder aux données secrètes Kubernetes dans les variables de flux de proxy d'API. Pour en savoir plus, consultez la section Stocker des données dans un secret Kubernetes.