IBM Cloud Docs
连接外部应用程序

连接外部应用程序

应用程序和驱动程序使用连接字符串来建立与 IBM Cloud® Databases for Redis的连接。 该服务专门为驱动程序和应用程序提供连接字符串。 连接字符串显示在部署的 "概述页面的 "终点面板中,也可以从 "Cloud DatabasesCLI插件 和 "Cloud Databases应用程序接口"页面中获取。

您在部署中创建的任何凭证都可以使用连接字符串。 虽然您可以将管理员用户用于所有连接和应用程序,但最好还是创建专门用于应用程序连接的用户。 更多信息,请参阅 获取连接字符串

应用程序的连接字符串

驱动程序与部署建立连接所需的所有信息都在服务凭据页面上创建的凭据的redis"部分。 该表包含供参考的细目。

redis 连接信息
字段名称 索引 描述
Type 连接类型--对于Redis 来说,是 "URI"。
Scheme 一个 URI 的方案--对于Redis 来说,就是 "rediss"。
Path URI 的路径 - 对于Redis,它是数据库编号。
Authentication Username 用于连接的用户名。
Authentication Password 用户密码 - 可能显示为 "$PASSWORD
Authentication Method 如何进行认证;“直接”认证由驱动程序处理。
Hosts 0... 要连接的主机名和端口。
Composed 0... 结合了方案、验证、主机和路径的 URI。
Certificate Name 数据库部署服务专有证书的分配名称。
Certificate Base64 证书的 base64 编码版本。
  • 0... 指示数组中可能有一个或多个这些条目。

当给定在连接信息的“组合”字段中找到 URI 格式的连接字符串时,Redis 驱动程序通常能够与部署建立连接。 例如,在环境变量 "REDIS_URL 中设置连接字符串,如下例所示:

export REDIS_URL=rediss://admin:$PASSWORD@e6b2c3f8-54a6-439e-8d8a-aa6c4a78df49.8f7bfd8f3faa4218aec56e069eb46187.databases.appdomain.cloud:32371/0

然后,Node.js客户端就能与以下设备建立连接。

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 }
});

或者,可以解析连接字符串并将其部件发送到连接处理程序,如以下 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 具有可供应用程序使用的客户机数组。 相当 在 Redis 站点上维护综合列表。 在选择客户端时,要注意一些有用的功能,如配置 高可用性、安全性和服务专有证书支持等,这些功能可以让您轻松地为云设计应用程序。

支持 TLS 和服务专有证书

到 Databases for Redis 的所有连接都已启用 TLS 1.2,因此用于连接的驱动程序需要能够支持 TLS 加密。

如果驱动程序不支持 rediss: 协议或 TLS/SSL 连接,那么仍可以使用 TLS/SSL 隧道应用程序 (例如 Stunnel) 来隧道连接到 Redis 数据库端点。 使用 Stunnel 的示例可在 "连接命令行客户端"页面找到,该页面用于连接 "redis-cli 应用程序。

部署还附带服务专有证书,以便在启动连接时验证服务器。 虽然不需要,但如果您的客户机支持,那么建议您执行额外的安全步骤。

有关更多信息,请参阅 Cloud Databases 证书常见问题

使用服务专有证书

  1. 从_端点_面板或服务证书连接信息的Base64字段复制证书信息。
  2. 如果需要,将 Base64 字符串解码为文本。
  3. 将证书保存到文件中。 (您可以使用提供的名称或您自己的文件名)。
  4. 向驱动程序或客户机提供证书的路径。

CLI 插件支持服务专有证书

您可以使用类似如下的命令通过 CLI 插件显示用于部署的解码证书:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

此命令将 Base64 解码为文本。 将命令的输出复制并保存到文件,并提供该文件的客户机路径。