背景说明
由于历史原因,TDMQ 产品家族下的子产品存在共用个别接口的情况,例如 Pulsar 和 RocketMQ 存在部分历史集群共用角色(Role)相关的云 API 的情况。为了最小粒度进行权限隔离,RocketMQ 后续推出了单独的角色管理接口。对于部分使用历史共用云 API 的客户,TDMQ RocketMQ 会进行单独通知。
本篇文档用于指导客户更好地进行云 API 的替换。如您未使用以下的历史共用接口,可以忽略本文档。
相关接口
历史共用接口名 | 说明 | 替换接口 |
CreateRole | 创建角色 | CreateRocketMQRole |
DeleteRoles | 删除角色 | DeleteRocketMQRoles |
DescribeRoles | 获取角色列表 | DescribeRocketMQRoles |
ModifyRole | 角色修改 | ModifyRocketMQRole |
ModifyEnvironmentRole | 修改环境角色授权 | ModifyRocketMQEnvironmentRole |
CreateEnvironmentRole | 创建环境角色授权 | CreateRocketMQEnvironmentRole |
DescribeEnvironmentRoles | 获取命名空间角色列表 | DescribeRocketMQEnvironmentRoles |
DeleteEnvironmentRoles | 删除环境角色授权 | DeleteRocketMQEnvironmentRoles |
DescribeMsgTrace | 查询消息轨迹 | DescribeRocketMQMsgTrace |
ModifyVipInstanceState | 修改专享实例状态 | ModifyRocketMQVipInstanceState |
DescribeAppIdStats | 获取用户信息 | DescribeRocketMQAppIdStats |
迁移代码示例
迁移时仅需要改变实例化请求对象为 RocketMQ 相关的对象,这里以 CreateRole 接口迁移到 CreateRocketMQRole 接口为例,使用 SDK接入,开发语言为 Java。
旧接口接入
package com.tencent;import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.HttpProfile; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.tdmq.v20200217.TdmqClient; import com.tencentcloudapi.tdmq.v20200217.models.*; public class Sample { public static void main(String [] args) { try{ // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密 // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取 Credential cred = new Credential("", ""); // 实例化一个http选项,可选的,没有特殊需求可以跳过 HttpProfile httpProfile = new HttpProfile(); // 推荐使用北极星,相关指引可访问如下链接 // https://git.woa.com/tencentcloud-internal/tencentcloud-sdk-java#%E5%8C%97%E6%9E%81%E6%98%9F httpProfile.setEndpoint("tdmq.ap-guangzhou.tencentcloudapi.woa.com"); // 实例化一个client选项,可选的,没有特殊需求可以跳过 ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); // 实例化要请求产品的client对象,clientProfile是可选的 TdmqClient client = new TdmqClient(cred, "", clientProfile); // 实例化一个请求对象,每个接口都会对应一个request对象 CreateRoleRequest req = new CreateRoleRequest(); // 返回的resp是一个CreateRoleResponse的实例,与请求对象对应 CreateRoleResponse resp = client.CreateRole(req); // 输出json格式的字符串回包 System.out.println(resp); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); } } }
新接口接入
package com.tencent; import com.tencentcloudapi.common.Credential; import com.tencentcloudapi.common.profile.ClientProfile; import com.tencentcloudapi.common.profile.HttpProfile; import com.tencentcloudapi.common.exception.TencentCloudSDKException; import com.tencentcloudapi.tdmq.v20200217.TdmqClient; import com.tencentcloudapi.tdmq.v20200217.models.*; public class Sample { public static void main(String [] args) { try{ // 实例化一个认证对象,入参需要传入腾讯云账户secretId,secretKey,此处还需注意密钥对的保密 // 密钥可前往https://console.cloud.tencent.com/cam/capi网站进行获取 Credential cred = new Credential("", ""); // 实例化一个http选项,可选的,没有特殊需求可以跳过 HttpProfile httpProfile = new HttpProfile(); // 推荐使用北极星,相关指引可访问如下链接 // https://git.woa.com/tencentcloud-internal/tencentcloud-sdk-java#%E5%8C%97%E6%9E%81%E6%98%9F httpProfile.setEndpoint("tdmq.ap-guangzhou.tencentcloudapi.woa.com"); // 实例化一个client选项,可选的,没有特殊需求可以跳过 ClientProfile clientProfile = new ClientProfile(); clientProfile.setHttpProfile(httpProfile); // 实例化要请求产品的client对象,clientProfile是可选的 TdmqClient client = new TdmqClient(cred, "", clientProfile); // 实例化一个请求对象,每个接口都会对应一个request对象 CreateRocketMQRoleRequest req = new CreateRocketMQRoleRequest(); // 返回的resp是一个CreateRocketMQRoleResponse的实例,与请求对象对应 CreateRocketMQRoleResponse resp = client.CreateRocketMQRole(req); // 输出json格式的字符串回包 System.out.println(resp); } catch (TencentCloudSDKException e) { System.out.println(e.toString()); } } }