Conception d'emballage à lecture directe compatible avec les API - AWS Conseils prescriptifs

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

Conception d'emballage à lecture directe compatible avec les API

Lorsque vous introduisez une couche de mise en cache dans une base de données DynamoDB, vous souhaitez généralement éviter des modifications importantes du code côté client. Pour ce faire, vous pouvez introduire une classe shim côté client qui enveloppe le client DynamoDB et présente la même interface à ses appelants. Toute la logique de mise en cache est incluse dans la classe wrapper et exécutée de manière implicite et invisible pour l'appelant.

Par exemple, l'exemple de code suivant construit un client DynamoDB, un client (Redis OSS) et ElastiCache un shim. CacheClient Le shim ressemble au client DynamoDB et utilise le en interne pour communiquer avec dynamodb_client la base de données, et il utilise le pour fournir redis_client la mise en cache :

dynamodb_client = boto3.client("dynamodb") redis_client = Redis(host='hostname', port=6379, decode_responses=True, ssl=True, read_from_replicas=True) cache_client = CacheClient(dynamodb_client, redis_client, ttl=60*60)

Cette approche ne nécessite aucune autre modification de l'application pour introduire la mise en cache.