Design de invólucro de leitura compatível com API - AWS Orientação prescritiva

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Design de invólucro de leitura compatível com API

Quando você introduz uma camada de cache em um banco de dados do DynamoDB, normalmente você quer evitar modificações extensivas no código do lado do cliente. Uma forma de fazer isso é introduzir uma classe shim do lado do cliente que envolva o cliente do DynamoDB e apresente a mesma interface para seus chamadores. Toda a lógica de armazenamento em cache é incluída na classe wrapper e executada de forma implícita e invisível para o chamador.

Por exemplo, o exemplo de código a seguir constrói um cliente do DynamoDB, ElastiCache um cliente (Redis OSS) e um shim. CacheClient O shim se parece com o cliente do DynamoDB e o usa internamente para se comunicar com dynamodb_client o banco de dados e usa o para fornecer o armazenamento em cache: redis_client

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)

Essa abordagem não exige nenhuma outra alteração no aplicativo para introduzir o armazenamento em cache.