1.0.4 • Published 8 months ago

rds-connection-pool v1.0.4

Weekly downloads
-
License
MIT
Repository
github
Last release
8 months ago

Pacote para RDS Proxy (Suporta endpoint leitura / escrita)

Esse pacote foi desenvolvido especialmente para utilização em ambientes Lambda, porém oferece suporte a qualquer projeto utilizando mysql2. Dentre as funcionalidades podemos destacar:

  1. Cache de Pools: Reutilização de conexões do pool dentro do mesmo container do Lambda (Ambiente aquecido);
  2. Recomendação de Uso com RDS Proxy: Use o RDS Proxy para gerenciar conexões e reduzir overhead de criação de conexões.

Exemplo de Uso

import { getConnectionPools, ConnectionConfig } from 'rds-connection-pool';

let connectionPools; // Cache global para reutilização em containers quentes

export const handler = async (event: any) => {
  try {
    // Configuração de endpoints para leitura e escrita
    const config: ConnectionConfig = {
      read: {
        host: 'proxy-read-endpoint.rds.amazonaws.com',
        user: 'read_user',
        password: 'read_password',
        database: 'my_database',
      },
      write: {
        host: 'proxy-write-endpoint.rds.amazonaws.com',
        user: 'write_user',
        password: 'write_password',
        database: 'my_database',
      },
    };

    // Inicializa o pool apenas na primeira execução do container
    if (!connectionPools) {
      connectionPools = await getConnectionPools('myLambda', config);
    }

    // Operação de Leitura
    const [rows] = await connectionPools.read.query('SELECT * FROM users');
    console.log('Dados:', rows);

    // Operação de Escrita
    await connectionPools.write.query('INSERT INTO users (name) VALUES (?)', ['John Doe']);
    console.log('Registro inserido.');

    // Retorna sucesso
    return {
      statusCode: 200,
      body: JSON.stringify(rows),
    };
  } catch (error) {
    console.error('Erro na Lambda:', error);
    return {
      statusCode: 500,
      body: JSON.stringify({ error: error.message }),
    };
  }
};
1.0.4

8 months ago

1.0.3

8 months ago

1.0.2

8 months ago

1.0.1

8 months ago

1.0.0

8 months ago