Conexión de una aplicación externa
Sus aplicaciones y controladores utilizan series de conexión para realizar una conexión con IBM Cloud® Databases for Redis. El servicio proporciona series de conexión específicamente para controladores y aplicaciones. Las cadenas de conexión se muestran en el panel Endpoints de la página Overview de la implantación y también se pueden recuperar desde el complemento CLI Cloud Databases y la API Cloud Databases.
Las cadenas de conexión pueden ser utilizadas por cualquiera de las credenciales que cree en su despliegue. Aunque puede utilizar el usuario administrador para todas las conexiones y aplicaciones, quizás sea mejor crear usuarios específicamente para conectarse a las aplicaciones. Para más información, consulte Obtener cadenas de conexión.
Series de conexión para aplicaciones
Toda la información que necesita un controlador para establecer una conexión con su implementación se encuentra en la secciónredis" de una credencial creada en la página Credenciales de servicio. La tabla contiene un desglose para referencia.
Nombre de campo | Índice | Descripción |
---|---|---|
Type |
Tipo de conexión - para Redis, es "URI". | |
Scheme |
Esquema para un URI - para Redis, es "rediss". | |
Path |
Ruta para un URI - para Redis, es el número de base de datos. | |
Authentication |
Username |
El nombre de usuario que utiliza para conectarse. |
Authentication |
Password |
Una contraseña para el usuario - podría mostrarse como $PASSWORD . |
Authentication |
Method |
Cómo se realiza la autenticación; la autenticación "directa" la maneja el controlador. |
Hosts |
0... |
Un nombre de host y un puerto al que conectar. |
Composed |
0... |
Un URI que combina esquema, autenticación, host y ruta. |
Certificate |
Name |
El nombre asignado para el certificado propietario del servicio para el despliegue de la base de datos. |
Certificate |
Base64 | Una versión codificada en base64 del certificado. |
0...
indica que puede haber una o varias de estas entradas en una matriz.
A menudo, los controladores de Redis pueden realizar una conexión con el despliegue si se les proporciona la serie de conexión con formato URI en el campo "Compuesto" de la información de conexión. Por ejemplo, si establece la cadena
de conexión en la variable de entorno ' REDIS_URL
, como en el siguiente ejemplo:
export REDIS_URL=rediss://admin:$PASSWORD@e6b2c3f8-54a6-439e-8d8a-aa6c4a78df49.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32371/0
A continuación, el cliente Node.js es capaz de establecer una conexión con.
let connectionString = process.env.REDIS_URL;
if (connectionString === undefined) {
console.error("Please set the REDIS_URL environment variable");
process.exit(1);
}
let client = null;
client = redis.createClient(connectionString, {
tls: { servername: new URL(connectionString).hostname }
});
Alternativamente, la cadena de conexión puede ser analizada y sus partes enviadas al gestor de conexión, como en el siguiente ejemplo de cliente Python:
parsed = urlparse(connection_string)
r = redis.StrictRedis(
host=parsed.hostname,
port=parsed.port,
password=parsed.password,
ssl=True,
ssl_ca_certs='/etc/ssl/certs/ca-certificates.crt',
decode_responses=True)
Redis dispone de una serie de clientes que las aplicaciones pueden utilizar. En el sitio Redis se mantiene una lista bastante completa. Algunas cosas útiles a tener en cuenta a la hora de elegir un cliente son las características que le permiten diseñar fácilmente su aplicación para la nube, como la configuración de la alta disponibilidad, la seguridad y la compatibilidad con certificados propietarios de servicios.
Compatibilidad con TLS y certificados propietarios de servicios
Todas las conexiones a Databases for Redis tienen habilitado TLS 1.2, por lo que el controlador que se utiliza para conectar tiene que admitir el cifrado TLS.
Si el controlador no admite el protocolo rediss:
o a las conexiones TLS/SSL, todavía es posible realizar un túnel de conexiones con el punto final de la base de datos de Redis utilizando una aplicación de túnel TLS/SSL como, por
ejemplo, Stunnel. Puede encontrar un ejemplo de utilización de Stunnel en la página Conexión con un cliente de línea de mandatos, donde se utiliza para
conectar la aplicación redis-cli
.
Los despliegues también vienen con un certificado propietario del servicio para que puedas verificar el servidor al iniciar una conexión. Aunque no es obligatorio, es un paso de seguridad adicional que se recomienda si el cliente lo admite.
Para obtener más información, consulte Cloud Databases FAQ de certificados.
Utilización del certificado propietario del servicio
- Copie la información del certificado del panel Endpoints o del campo Base64 de la información de conexión de la credencial de servicio.
- Si es necesario, decodifique la serie Base64 en texto.
- Guarde el certificado en un archivo. (Puede utilizar el Nombre que se proporciona o un nombre de archivo de su elección).
- Proporcione al controlador o al cliente la vía de acceso al certificado.
Compatibilidad del complemento CLI con el certificado propietario del servicio
Puede mostrar el certificado descodificado para su despliegue con el complemento CLI con un comando como:
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
Este comando descodifica el Base64 en texto. Copie y guarde la salida del mandato en un archivo y proporcione la vía de acceso del archivo al cliente.