连接到 Event Streams

要连接到 Event Streams 实例,您需要 API 的端点 URL 以及用于认证的凭证。 了解如何获取这些详细信息以及可以使用的连接选项。

概述

使用精简版、标准版或企业版计划提供的服务在仪表板中的 “服务” 标题下分组。

所有套餐都使用 IAM 进行认证。 您不需要了解 IAM 即可入门,但是如果您想要保护 Event Streams 服务,建议您了解一些相关知识。 有关更多信息,请参阅管理对 Event Streams 资源的访问权。 要完成以下步骤并获得创建主题的权限,您的应用程序或服务密钥必须具有经理访问权限。 缺省情况下,包含服务实例的帐户的所有者具有此角色。

缺省情况下,Event Streams 实例配置为使用 IBM Cloud® 公用网络,因此可以通过公用因特网进行访问。 如果需要,您可以通过选择备用网络类型或限制接受连接的位置来限制此访问权。 有关更多信息,请参阅 限制网络访问

连接信息

要访问服务实例,请创建服务密钥。 服务密钥包含访问实例所需的信息,包括其 API 的端点详细信息和唯一 API 密钥凭证。

要使用 IBM Cloud 控制台创建服务密钥:

  1. 在仪表板上找到您的 Event Streams 服务。
  2. 单击服务磁贴。
  3. 单击服务凭证
  4. 单击新建凭证
  5. 完成新凭证的详细信息。 选择名称和角色,然后单击 添加。 凭证列表中将显示新的凭证。
  6. 点击 “查看证书”查看新证书,以JSON格式显示详细信息。

要使用 IBM Cloud CLI创建服务密钥,请完成以下步骤。

  1. 找到您的服务:

    ibmcloud resource service-instances
    
  2. 创建服务密钥:

    ibmcloud resource service-key-create <key_name> <key_role> --instance-name <your_service_name>
    
  3. 打印服务密钥:

    ibmcloud resource service-key <key_name>
    

    每个服务密钥中都包含一组端点详细信息。 对于配置为连接到单个网络类型 ( IBM Cloud 公用网络 (缺省值) 或 IBM Cloud 专用网络) 的服务实例,服务密钥包含与该网络类型相关的详细信息。 对于配置为同时支持专用网络和公用网络的实例,将返回公用网络的详细信息。 如果需要专用网络的详细信息,那么必须将 --service-endpoint private 参数添加到先前的 CLI 命令,如以下示例中所示。

    ibmcloud resource service-key-create <private-key-name> <role> --instance-name <instance-name> --service-endpoint private
    

有关更多信息,请参阅 网络类型

建立连接

要连接 Kafka 应用程序,请完成以下任务。

  • 使用服务密钥中的 <bootstrap_endpoints> 字段作为 Kafka 应用程序的 bootstrap.servers 属性。
  • 将 security.protocol 属性设置为 SASL_SSL,将 sasl.mechanism 属性设置为 PLAIN。
  • 使用服务密钥中的 <user> 字段作为用户名,使用服务密钥中的 <api_key> 字段作为密码。 确保您的应用程序会解析这些详细信息。
  • 有关更多信息,请参阅配置 Kafka API 客户机

要调用 HTTP API,请完成以下任务。

  • 使用服务密钥的 <kafka_admin_url> 字段作为 HTTP 请求的基本 URL。
  • 使用 IBM Cloud CLI ibmcloud iam oauth-tokens 命令生成认证令牌。 将此令牌放在 HTTP 请求的 Authorization 头中,值的格式为 Bearer <token>。 支持 API 密钥或 JWT 令牌。
  • 为每个 API 提供了更多文档。

网络连接

缺省情况下,Lite,Standard 和 Enterprise 实例配置为可通过公共因特网访问。 如果您正在使用企业套餐,那么可以按如下所示限制连接:

专用联网
如果您的工作负载完全在 IBM Cloud 内运行,并且不需要公众访问该服务,则可以将 Event Streams 实例配置为只能通过 IBM Cloud 专用网络访问。 这种配置能够提高隔离度,且不会产生与公共流量相关的出口带宽费用。 还可以将实例配置为可通过 IBM Cloud 公用和专用网络访问。
基于上下文的限制
您可以定义访问规则,根据特定特征来限制接受连接的网络位置。 例如,网络类型,IP 范围,VPC 或其他服务。

有关更多信息,请参阅 限制网络访问

通过专用网络从经典基础架构访问企业实例

要通过专用网络访问在 IBM Cloud 经典基础架构上部署的工作负载的企业实例,必须在您的帐户中启用虚拟路由转发 (VRF) 和服务端点功能。 有关更多信息,请参阅 限制网络访问

通过专用网络从 VPC 访问企业实例

要使部署在 IBM Cloud VPC 中的工作负载能够通过专用网络访问企业实例,必须在 VPC 中创建虚拟专用端点 (VPE):

  1. 在 IBM Cloud 控制台中,单击菜单图标,然后选择 VPC 基础结构 > 网络 > 虚拟专用端点网关
  2. 通过使用 关于虚拟专用端点网关中的指导信息,为 Event Streams 实例创建 VPE。
  3. 创建 VPE 后,新 VPE 和 pDNS 可能需要几分钟才能完成此过程并开始为 VPC 工作。 当您在 VPE 的 详细信息视图 中看到 IP 地址集时,将确认完成。

从 IBM Cloud 外部通过专用网络访问企业实例

Direct Link 2.0 之类的解决方案可用于在外部网络 (例如本地数据中心) 与 IBM Cloud 专用网络之间建立连接。 但是,在处理在外部网络上运行的工作负载时,必须考虑其他因素以确保成功连接到 Kafka。 请注意,这些注意事项不适用于 HTTP 工作负载。

分配给实例的专用端点详细信息 (如服务密钥中所述) 必须可从正在运行工作负载的网络进行解析和可路由。 无法在工作负载的 bootstrap.servers 属性中指定备用主机名条目作为从外部网络路由流量的方法。

此行为的原因是 Kafka的两步连接过程。 在初始步骤中,客户机的 bootstrap.servers 属性中提供的主机名用于建立第一个引导程序连接。 但是,服务器随后会使用其使用的实际端点主机名详细信息来响应客户机。 这些主机名详细信息是最初分配给实例的专用端点详细信息,无法更改。 因此,必须可直接从外部网络解析和路由详细信息。

更多信息,请参阅 《 使用 IBM Cloud Direct Link 从本地网络访问私有API端点 》。

后续操作

现在您已经获得了连接和证书信息,您可以选择 Kafka 客户端。 有关更多信息,请参阅使用 Kafka API