阿里云CLI(Alibaba Cloud Command Line Interface)是基于OpenAPI构建的通用命令行工具,您可以通过阿里云CLI实现自动化管理和维护云消息队列 RocketMQ 版(ApsaraMQ for RocketMQ)。本文以调用OnsInstanceBaseInfo接口查询实例基本信息为例,为您介绍使用阿里云CLI调用云消息队列 RocketMQ 4.0 版OpenAPI的操作步骤。
前置概念
阅读本文前,若您还不了解阿里云CLI,请参见什么是阿里云 CLI。
步骤一:安装阿里云CLI
使用阿里云CLI前,您需要先安装阿里云CLI。阿里云CLI为用户提供了Windows、Linux和macOS三种操作系统下的安装服务,请根据您使用设备的操作系统选择对应的安装服务。
-
Windows:安装CLI(Windows)。
-
Linux:安装/更新 CLI。
-
macOS:安装CLI(macOS)。
您也可在云命令行(Cloud Shell)中调试阿里云CLI命令。云命令行中预装了阿里云CLI,且会定期更新软件版本。更多信息,请参见什么是云命令行。
步骤二:配置阿里云CLI
阿里云主账号拥有所有产品OpenAPI的管理和访问权限,风险很高。强烈建议您创建RAM身份,并依据最小化权限原则授予权限,使用RAM身份访问OpenAPI。云消息队列 RocketMQ 版 4.x支持的权限策略,请参见云消息队列 MQ系统权限策略参考及云消息队列 RocketMQ 版自定义权限策略。
使用阿里云CLI之前,您需要在阿里云CLI中配置身份凭证、地域ID等信息。阿里云CLI支持多种身份凭证,详情请参见配置与管理身份凭证。本文操作以AK类型凭证为例,具体操作步骤如下:
-
创建一个RAM用户,并创建AccessKey,以便后续配置身份凭证使用。具体操作,请参见创建RAM用户及创建AccessKey。
-
为RAM用户授权。本文示例需授予RAM用户云消息队列 RocketMQ 版 4.x的发布权限
AliyunMQPubOnlyAccess。具体操作,请参见管理RAM用户的权限。 -
获取可用的地域ID,以便后续配置身份凭证使用。阿里云CLI将使用您指定的地域发起OpenAPI调用,云消息队列 RocketMQ 版 4.x的可用地域请参见服务接入点。
说明使用阿里云CLI过程中您可使用
--region选项指定地域发起命令调用,该选项在使用时将忽略默认身份凭证配置及环境变量设置中的地域信息。详情请参见命令行选项。 -
使用RAM用户的AccessKey配置AK类型凭证,配置文件命名为
AkProfile。具体操作,请参见配置与管理身份凭证。
步骤三:生成CLI命令示例
-
在OpenAPI门户中,访问OnsInstanceBaseInfo调试地址。
-
在参数配置中输入请求参数,单击CLI示例页签,查看生成的CLI示例。
-
复制CLI示例或在云命令行中快速执行:
-
单击运行命令
按钮,可唤出云命令行并快速完成命令调试。 -
单击复制按钮
,将CLI示例复制到剪贴板中,可粘贴至本地Shell工具中运行。
说明复制CLI示例到本地Shell工具中进行调试时请注意参数格式。关于阿里云CLI命令参数使用格式的详细信息,请参见理解命令行参数。
OpenAPI门户生成示例中会默认添加
--region选项,复制命令到本地调用时阿里云CLI将忽略默认身份凭证配置及环境变量设置中的地域信息,优先使用指定的地域调用命令,您可根据需要对该选项进行删除或保留。 -
步骤四:调用云消息队列 RocketMQ 4.0 版OpenAPI
示例一:获取支持阿里云CLI调用云消息队列 RocketMQ 4.0 版OpenAPI列表
以下示例将为您展示如何使用--help选项获取支持阿里云CLI调用的云消息队列 RocketMQ 4.0 版OpenAPI列表。您也可在API概览中查看支持调用的OpenAPI。
-
执行命令。
aliyun ons --help -
输出结果。
Product: Ons (云消息队列 RocketMQ 4.0 版) Version: 2019-02-14 Available Api List: ListTagResources 调用ListTagResources查询资源绑定的标签列表。 OnsConsumerAccumulate 查询指定 Group ID的消息消费堆积情况,包括当前消息堆积数量和消费延迟时间等。 OnsConsumerGetConnection 查询指定 Group ID 下当前客户端的连接情况。 OnsConsumerResetOffset 重置指定的Group ID的消费位点到指定时间戳。 OnsConsumerStatus 查询指定 Group ID详细状态数据:订阅关系检查、消费TPS统计、负载均衡状态、消费端连接。 OnsConsumerTimeSpan 查询Topic可重置的时间范围,即该Topic中储存的最早的和最晚的消息的生产时间。 OnsDLQMessageGetById 通过传入Message ID查询指定的死信消息。包括存储时间、消息体、Key和Tag。 OnsDLQMessagePageQueryByGroupId 通过传入 Group ID和时间段,分页查询指定时间段内该Group ID内存在的所有死信消息。 OnsDLQMessageResendById 重发指定 Message ID的死信消息,使该消息能够被 Consumer再次消费。 OnsGroupConsumerUpdate 配置指定 Group ID对应的消费集群的消息读取权限。本接口一般用于禁止特定 Group ID读取消息的场景。 OnsGroupCreate 调用OnsGroupCreate创建客户端Group ID。 OnsGroupDelete 调用OnsGroupDelete删除 Group。 OnsGroupList 查询指定实例下所有的Group ID信息。
示例二:查询实例基本信息和收发消息的接入点
以下示例将为您展示如何使用阿里云CLI调用云消息队列 RocketMQ 版 4.x的OnsInstanceBaseInfo命令,通过实例ID查询云消息队列 RocketMQ 版实例基本信息和收发消息的接入点。
-
执行命令。
aliyun ons OnsInstanceBaseInfo --InstanceId 'MQ_INST_138015630679****_BAAy1Hac' -
输出结果。
{ "InstanceBaseInfo": { "Endpoints": { "TcpEndpoint": "http://MQ_INST_138015630679****_BAAy1Hac.cn-chengdu.mq-internal.aliyuncs.com:8080", "TcpInternetEndpoint": "http://MQ_INST_138015630679****_BAAy1Hac.mq.cn-chengdu.aliyuncs.com:80", "HttpInternetEndpoint": "http://138015630679****.mqrest.cn-chengdu.aliyuncs.com", "HttpInternalEndpoint": "http://138015630679****.mqrest.cn-chengdu-internal.aliyuncs.com", "HttpInternetSecureEndpoint": "https://138015630679****.mqrest.cn-chengdu.aliyuncs.com" }, "IndependentNaming": true, "MaxTps": 10000, "Remark": "ons-cn-m7r1r5f****", "InstanceName": "test", "ReleaseTime": 1603555200000, "TopicCapacity": 50, "InstanceStatus": 5, "InstanceId": "MQ_INST_138015630679****_BAAy1Hac", "InstanceType": 2, "CreateTime": "1570701259403", "spInstanceId": "ons-cn-m7r1r5f****", "spInstanceType": 1 }, "RequestId": "6CC46974-65E8-4C20-AB07-D20D102E****" }说明如果调用云消息队列 RocketMQ 4.0 版OpenAPI后返回错误,您需要根据返回的错误码提示检查传入的请求参数及其取值是否正确。
您也可以记录下调用返回的RequestID或SDK报错信息,通过阿里云OpenAPI诊断平台进行自助诊断。