rds-connection-pool
v1.0.1
Published
Uma biblioteca leve e eficiente para gerenciar pools de conexão MySQL/Aurora.
Maintainers
Readme
Uso com AWS Lambda
O pacote suporta ambientes Lambda. Para maximizar o desempenho:
- Cache de Pools: O pacote reutiliza conexões no mesmo container Lambda automaticamente.
- 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 }),
};
}
};