消息队列 Kafka 版接口调用是向消息队列 Kafka 版的服务端地址发送 HTTP 请求,并按照接口说明在请求中加入相应请求参数,调用后系统会返回处理结果。请求及返回结果都使用 UTF-8 字符集进行编码。

请求结构

消息队列 Kafka 版的 API 是 RPC 风格,您可以通过发送 HTTP 请求调用 消息队列 Kafka 版 API。

其请求结构如下:

http://Endpoint/?Action=xx&Parameters

其中:

  • Endpoint消息队列 Kafka 版 API 的服务接入地址。不同地域的接入地址如下表所示。
    表 1. 消息队列 Kafka 版接入地址
    地域名称 RegionId Domain
    华东1(杭州) cn-hangzhou alikafka.cn-hangzhou.aliyuncs.com
    华东2(上海) cn-shanghai alikafka.cn-shanghai.aliyuncs.com
    华北1(青岛) cn-qingdao alikafka.cn-qingdao.aliyuncs.com
    华北2(北京) cn-beijing alikafka.cn-beijing.aliyuncs.com
    华北3(张家口) cn-zhangjiakou alikafka.cn-zhangjiakou.aliyuncs.com
    华北5(呼和浩特) cn-huhehaote alikafka.cn-huhehaote.aliyuncs.com
    华南1(深圳) cn-shenzhen alikafka.cn-shenzhen.aliyuncs.com
    中国(香港) cn-hongkong alikafka.cn-hongkong.aliyuncs.com
    新加坡 ap-southeast-1 alikafka.ap-southeast-1.aliyuncs.com
    印度(孟买) ap-south-1 alikafka.ap-south-1.aliyuncs.com
    印度尼西亚(雅加达) ap-southeast-5 slb.ap-southeast-5.aliyuncs.com
  • Action:要执行的操作。例如,调用 GetInstanceList 查询已创建的消息队列 Kafka 版实例。
  • Version:要使用的 API 版本。消息队列 Kafka 版的 API 版本是 2019-09-16
  • Parameters:请求参数。每个参数之间用 “&” 分隔。 请求参数由公共请求参数和 API 自定义参数组成。公共参数中包含 API 版本号、身份验证等信息。详情请参见公共参数

以下是一个调用 GetInstanceList 接口查询已创建的消息队列 Kafka 版实例的示例:

说明 为了便于您查看,本文中的示例都做了格式化处理。
https://alikafka.aliyuncs.com/?Action=GetInstanceList
&Format=JSON
&Version=2019-09-16
&Signature=xxxx%xxxx%%3D
&SignatureMethod=HMAC-SHA1
&SignatureNonce=87dacc12d1a92bb296d2b398b454884b
&SignatureVersion=1.0
&AccessKeyId=key-test
&Timestamp=2020-01-06T09
…

API 授权

为了确保您的账号安全,建议您使用子账号的身份凭证调用 API。如果您使用 RAM 账号调用消息队列 Kafka 版,您需要为该 RAM 账号创建、附加相应的授权策略。

消息队列 Kafka 版中可授权的资源和接口列表,请参见RAM 鉴权

API 签名

对于每一次 HTTP 或者 HTTPS 协议请求,我们会根据访问中的签名信息验证访问请求者身份。具体使用 AccessKey 的 AccessKeyId 和 AccessKeySecret 对称加密验证实现。消息队列 Kafka 版通过使用 AccessKey ID 和 AccessKey Secret 进行对称加密的方法来验证请求的发送者身份。AccessKey 是为阿里云账号和 RAM 用户发布的一种身份凭证(类似于用户的登录密码),其中 AccessKey ID 用于标识访问者的身份,AccessKey Secret 是用于加密签名字符串和服务器端验证签名字符串的密钥,必须严格保密。API 签名方法,请参见签名机制