Conexión a clústeres de Aurora DSQL con un conector de JDBC
El conector de Aurora DSQL para JDBC
El conector de Aurora DSQL para JDBC está diseñado para funcionar con el controlador JDBC de PostgreSQL
Junto con el controlador JDBC de PostgreSQL, el conector de Aurora DSQL para JDBC permite la autenticación basada en IAM para Aurora DSQL. Ingresa una profunda integración con servicios de autenticación de AWS como AWS Identity and Access Management
Acerca del conector
Aurora DSQL es un servicio de base de datos SQL distribuido que proporciona alta disponibilidad y escalabilidad para aplicaciones compatibles con PostgreSQL. Aurora DSQL requiere una autenticación basada en IAM con tokens de tiempo limitado que los controladores JDBC existentes no admiten de forma nativa.
La idea principal del conector de Aurora DSQL para JDBC es agregar una capa de autenticación sobre el controlador JDBC de PostgreSQL que gestione la generación de los tókenes de IAM, lo que permite a los usuarios conectarse a Aurora DSQL sin cambiar sus flujos de trabajo de JDBC existentes.
¿Qué es la autenticación de Aurora DSQL?
En Aurora DSQL, la autenticación implica:
-
Autenticación de IAM: todas las conexiones utilizan la autenticación basada en IAM con tokens de tiempo limitado
-
Generación de tokens: los tokens de autenticación se generan mediante credenciales de AWS y tienen una vida útil configurable
El conector de Aurora DSQL para JDBC está diseñado para comprender estos requisitos y generar automáticamente los tókenes de autenticación de IAM al establecer las conexiones.
Beneficios del conector de Aurora DSQL para JDBC
Aunque Aurora DSQL proporciona una interfaz compatible con PostgreSQL, los controladores de PostgreSQL existentes actualmente no admiten los requisitos de autenticación de IAM de Aurora DSQL. El conector de Aurora DSQL para JDBC permite a los clientes seguir utilizando los flujos de trabajo de PostgreSQL existentes y, al mismo tiempo, habilitar la autenticación de IAM mediante:
-
Generación automática de tokens: los tokens de IAM se generan automáticamente mediante credenciales de AWS
-
Integración perfecta: funciona con los patrones de conexión JDBC existentes
-
Soporte de credenciales de AWS: admite varios proveedores de credenciales de AWS (predeterminados, basados en perfiles, etc.)
Uso del conector de Aurora DSQL para JDBC con agrupación de conexiones
El conector de Aurora DSQL para JDBC funciona con bibliotecas de agrupamiento de conexiones como HikariCP. El conector gestiona la generación del token de IAM durante el establecimiento de la conexión, lo que permite que los grupos de conexiones funcionen con normalidad.
Características principales de
- Generación automática de token
-
Los tokens de IAM se generan automáticamente mediante credenciales de AWS.
- Integración sin problemas
-
Funciona con los patrones de conexión de JDBC existentes sin requerir cambios en el flujo de trabajo.
- Soporte de credenciales de AWS
-
Admite varios proveedores de credenciales de AWS (predeterminados, basados en perfiles, etc.).
- Compatibilidad de grupo de conexiones
-
Funciona a la perfección con bibliotecas de agrupación de conexiones como HikariCP.
Requisitos previos
Antes de comenzar, asegúrese de que cumple los siguientes requisitos previos:
-
Se ha instalado el kit de desarrollo de Java (JDK). Asegúrese de tener la versión 17 o superior.
-
Configure los permisos de IAM adecuados para permitir que la aplicación se conecte a Aurora DSQL.
-
Credenciales de AWS configuradas (mediante AWS CLI, variables de entorno o roles de IAM).
Uso del conector de Aurora DSQL para JDBC
Para usar el conector de Aurora DSQL para JDBC en la aplicación de Java, siga estos pasos:
-
Agregue las siguientes dependencias al proyecto de Maven:
<dependencies> <!-- Aurora DSQL Connector for JDBC --> <dependency> <groupId>software.amazon.dsql</groupId> <artifactId>aurora-dsql-jdbc-connector</artifactId> <version>1.0.0</version> </dependency> </dependencies>Para los proyectos de Gradle, agregue esta dependencia:
implementation("software.amazon.dsql:aurora-dsql-jdbc-connector:1.0.0") -
Cree una conexión básica al clúster de Aurora DSQL mediante el formato de conector de AWS DSQL PostgreSQL:
import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.SQLException; import java.sql.Statement; public class DsqlJdbcConnectorExample { public static void main(String[] args) { // Using AWS DSQL PostgreSQL Connector prefix String jdbcUrl = "jdbc:aws-dsql:postgresql://your-cluster.dsql.us-east-1.on.aws/postgres?user=admin"; try (Connection connection = DriverManager.getConnection(jdbcUrl)) { // Use the connection try (Statement statement = connection.createStatement()) { // Create a table statement.execute("CREATE TABLE IF NOT EXISTS test_table (id UUID PRIMARY KEY DEFAULT gen_random_uuid(), name VARCHAR(100))"); // Insert data statement.execute("INSERT INTO test_table (name) VALUES ('Test Name')"); // Query data try (ResultSet resultSet = statement.executeQuery("SELECT * FROM test_table")) { while (resultSet.next()) { System.out.println("ID: " + resultSet.getInt("id") + ", Name: " + resultSet.getString("name")); } } } } catch (SQLException e) { e.printStackTrace(); } } }
Propiedades de configuración
El conector de Aurora DSQL para JDBC admite las siguientes propiedades de conexión:
- usuario
-
Determina el usuario de la conexión y el método de generación del token utilizado. Ejemplo::
admin - token-duration-secs
-
Duración en segundos de la validez del token. Para obtener más información sobre los límites de los tokens, consulte Generación de un token de autenticación en Amazon Aurora DSQL.
- profile
-
Se utiliza para crear una instancia de ProfileCredentialsProvider para la generación de un token con el nombre de perfil proporcionado.
- region
-
Región de AWS para conexiones de Aurora DSQL. Es opcional. Cuando se proporcione, invalidará la región extraída de la URL.
- database
-
El nombre de la base de datos a la que se va a conectar. El valor predeterminado es
postgres.
Registro
Habilite el registro para solucionar cualquier problema que pueda surgir al utilizar el conector JDBC de Aurora DSQL.
El conector utiliza el sistema de registro integrado (java.util.logging) de Java. Puede configurar los niveles de registro creando un archivo de logging.properties:
# Set root logger level to INFO for clean output .level = INFO # Show Aurora DSQL Connector for JDBC FINE logs for detailed debugging software.amazon.dsql.level = FINE # Console handler configuration handlers = java.util.logging.ConsoleHandler java.util.logging.ConsoleHandler.level = FINE java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter # Detailed formatter pattern with timestamp and logger name java.util.logging.SimpleFormatter.format = %1$tH:%1$tM:%1$tS.%1$tL [%4$s] %3$s - %5$s%n
Ejemplos
Para ver ejemplos y casos de uso más completos, consulte el repositorio del conector de Aurora DSQL para JDBC