在云原生运维大规模普及的当下,传统网页控制台的图形化操作已经很难满足批量运维、持续集成、多环境管理、自动化脚本编排的业务诉求。大量运维工程师、开发人员需要一套可以脱离浏览器,直接在终端、服务器、CI流水线、AI智能体内部调用云平台能力的工具。阿里云CLI就是这样一款开源跨平台命令行管理工具,底层基于平台OpenAPI接口封装,支持Linux、macOS、Windows多操作系统,新版采用轻量化插件架构,覆盖三百余款云产品,几乎网页控制台可以完成的操作,都可以通过命令行实现。很多初次接触该工具的使用者,只把它当作简单查询工具,却不了解它完整的凭证体系、插件自动加载、结果过滤、预演校验、多账号隔离、脚本化批量处理等高级能力。本文将从底层架构、核心功能模块、安装配置流程、多类型凭证、常用实战命令、脚本开发案例、踩坑排错等维度完整介绍阿里云CLI,附带大量可直接复制运行的命令代码,帮助开发者充分发挥CLI的运维价值,把云资源管理融入自动化工作流当中。
新版阿里云CLI最核心的变革就是插件化架构,从3.3版本之后正式全面落地该设计思路,主程序本体保持轻量化,各个云产品的能力拆分为独立插件,使用者在执行对应产品命令的时候,工具会自动检测本地是否存在对应插件,如果缺失就自动从网络下载更新,不需要使用者手动下载大量SDK安装包,降低部署维护成本。每一个插件对应一款云产品,ECS、RDS、OSS、对象存储、函数计算、安全服务等全部独立拆分,插件可以独立迭代更新,不需要升级整个CLI主程序,新开放的云产品能力会优先完成插件适配,使用者不需要等待大版本更新就可以使用最新OpenAPI接口。这套插件机制带来的好处十分明显,服务器环境部署的时候,不会占用大量磁盘空间,只有实际调用的产品才会下载对应插件;版本迭代更加灵活,单个产品接口变更只需要更新对应插件,不会影响其他业务命令正常运行。同时CLI命令与OpenAPI接口一一对应,RPC风格接口、RESTful风格接口都做了适配封装,不需要开发者手动处理HTTP请求、签名、签名算法,工具内部自动完成签名组装、请求发送、异常解析、错误返回,极大降低直接调用OpenAPI的开发门槛。详情👉访问阿里云百炼 CLI 页面 或
详情👉访问阿里云百炼大模型服务平台页面 了解

身份凭证管理是CLI体系中非常关键的模块,也是很多新手容易踩坑的环节。传统模式下大家习惯使用AccessKey长期密钥,但是长期密钥泄露会带来很大安全风险,新版阿里云CLI提供了非常丰富的认证模式,不止简单AK密钥,还支持RAM角色扮演、ECS实例角色、OAuth浏览器登录、CloudSSO企业统一身份、OIDC身份联邦、外部程序获取凭证、STS临时令牌等多种认证方式,适配个人开发、企业多账号、容器集群、CI/CD流水线等不同场景。工具支持多套配置文件profile,我们可以保存多组身份凭证,分别对应开发环境、测试环境、生产环境,不同子账号、不同业务账号,执行命令的时候通过--profile参数直接切换,不需要反复修改配置文件,也不用反复复制粘贴密钥字符串,实现环境隔离,避免误操作生产资源。
凭证配置分为交互式和非交互式两种方式,交互式适合本地电脑调试,非交互式适合服务器脚本、流水线内部使用。执行交互式配置命令:
aliyun configure
执行之后终端会引导输入AccessKey ID、AccessKey Secret、默认地域、输出格式、语言,配置信息会保存在用户目录下隐藏配置文件。如果需要创建多套profile配置,执行下面命令,指定profile名称:
aliyun configure --profile dev
aliyun configure --profile prod
执行命令的时候指定profile,就会读取对应账号凭证:
aliyun ecs DescribeInstances --profile dev
在ECS云服务器内部,强烈推荐使用ECS RAM实例角色,不需要把AccessKey保存在服务器磁盘,避免密钥泄露风险。服务器绑定实例RAM角色之后,CLI会自动从实例元数据服务获取临时STS凭证,不需要手动填写任何密钥,直接执行命令即可调用云API,这是线上业务环境最推荐的安全方案。我们可以执行下面命令,查看当前调用身份,验证凭证是否生效:
aliyun sts get-caller-identity
这条命令会返回当前账号UID、用户身份类型,用来快速校验凭证配置是否正确,排查鉴权失败问题。
除了基础凭证管理,新版阿里云CLI内置大量实用全局参数,这些参数适用于所有云产品命令,极大提升脚本编写效率。--region可以临时指定地域,覆盖配置文件默认地域;--cli‑dry‑run预演模式,只会校验参数合法性,打印即将发送的请求内容,不会真正向云端发起变更操作,执行创建实例、修改配置、删除资源这类高危操作之前,强烈建议先开启预演模式校验参数正确性;--pager自动分页,很多OpenAPI接口返回结果存在分页限制,开启之后CLI自动循环请求所有分页,把全部结果合并输出,不用开发者自己写分页循环逻辑;--cli‑query使用JMESPath表达式对返回JSON结果做过滤提取,不需要额外安装jq工具就可以筛选字段;--log‑level调整日志输出等级,DEBUG模式可以打印完整请求响应,排查接口报错;‑q静默模式,脚本中使用,不输出返回内容,只通过返回码判断命令执行成功与否。
接下来看基础安装流程,Linux环境一键安装脚本,直接复制执行:
/bin/bash -c "$(curl -fsSL https://aliyuncli.alicdn.com/install.sh)"
安装完成校验版本,确保版本大于等于3.3.0,才能完整使用插件化全部新特性:
aliyun version
后续工具升级,直接执行升级命令,不需要重新下载安装包:
aliyun upgrade
Windows、macOS系统可以下载对应架构二进制程序,解压之后放到系统PATH环境变量目录下即可使用。平台还提供Cloud Shell网页终端,浏览器直接打开,内部已经预装最新版本阿里云CLI,并且自动完成身份认证,不需要配置任何密钥,适合快速调试命令,验证API参数。
命令通用语法格式为aliyun <产品名> <子命令/操作> [全局参数] [业务参数],例如查询ECS实例列表:
aliyun ecs DescribeInstances --region cn-hangzhou
每一条命令都支持--help查看帮助文档,不清楚参数的时候优先查看内置帮助,不需要反复查阅网页文档:
#查看ecs产品全部可用操作
aliyun ecs --help
#查看某一条子命令详细参数说明
aliyun ecs DescribeInstances --help
CLI最大的价值就是自动化脚本能力,图形控制台需要点击很多次页面完成的批量任务,使用Shell脚本循环调用CLI就可以一键完成。下面给出多地域批量查询ECS实例的脚本示例,遍历多个地域输出实例信息:
#!/bin/bash
region_list=("cn-hangzhou" "cn-shanghai" "cn-beijing")
for region in "${region_list[@]}";do
echo "==== 当前地域:$region ===="
aliyun ecs DescribeInstances --region $region --pager --cli-query "Instances.Instance[*].{InstanceId:InstanceId,Status:Status,InstanceName:InstanceName}"
done
脚本可以直接保存为check_ecs.sh,增加执行权限运行,实现多地域资产巡检。
OSS对象存储相关操作示例,创建存储空间,列举存储桶列表:
#列举全部OSS存储桶
aliyun oss ls
#创建新的oss bucket
aliyun oss mb oss://cli-demo-bucket-2026demo
RDS数据库实例查询命令,查询指定地域全部数据库实例:
aliyun rds DescribeDBInstances --region cn-hangzhou --pager
结合--cli‑query做结果过滤,只提取实例ID与实例名称,简化输出,方便脚本进一步处理:
aliyun ecs DescribeInstances --region cn-hangzhou --cli-query "Instances.Instance[*].InstanceId"
高危操作预演演示,开启cli‑dry‑run,测试释放实例的参数是否正确,不会真实删除资源:
aliyun ecs DeleteInstance --InstanceId i-xxxxxx --cli-dry-run
在生产运维场景中,很多开发者会把阿里云CLI集成到CI/CD流水线、自动化运维脚本、监控告警回调脚本、AI Agent框架内部。像OpenClaw、Hermes Agent这类开源智能体,就可以直接调用本机安装的阿里云CLI,让大模型通过命令行完成云资源查询、资源创建、状态巡检,实现智能体驱动云运维。但是这里需要注意权限最小化原则,给Agent使用的RAM账号,只分配任务必须的最小权限,不要授予全量管理权限,避免AI执行误操作带来资源风险。
新版CLI还支持命令自动补全功能,Linux/macOS环境可以开启bash或者zsh自动补全,不需要记忆冗长的命令与参数,按下tab键自动提示产品名、子命令、参数名称。bash环境开启自动补全命令:
aliyun completion --shell bash >> ~/.bashrc
source ~/.bashrc
在实际使用过程中,会遇到大量高频问题,下面梳理常见故障排查要点。第一,执行命令提示插件不存在,新版插件架构会自动下载插件,如果服务器访问外网受限,无法自动下载插件,就会报错,可以手动下载对应插件二进制文件放到插件目录。第二,鉴权报错401,优先执行aliyun sts get‑caller‑identity确认当前生效身份,核对AccessKey是否正确、是否过期、RAM账号是否授予对应云产品操作权限,区分default和其他profile配置。第三,参数错误返回400,绝大多数是参数名称书写错误,OpenAPI参数区分大小写,优先执行--help查看官方参数名称,不要凭记忆书写参数。第四,分页结果只返回部分数据,忘记加上--pager参数,接口默认单页返回有限条目,开启自动分页获取全部数据。第五,变更类操作误删资源,养成习惯,正式执行删除、释放、修改配置命令之前,先带上--cli‑dry‑run预演校验,确认请求参数无误之后再去掉预演参数执行真实请求。第六,服务器环境使用AccessKey密钥,密钥保存在配置文件有泄露风险,线上ECS业务尽量使用实例RAM角色,不要长期保存AK密钥。第七,脚本执行返回JSON结果复杂,善用--cli‑query过滤输出,减少文本解析代码的开发工作量。
从业务落地场景来看,阿里云CLI适用的场景非常广泛。第一,日常运维批量操作,批量查询多地域云资产,批量快照创建、批量实例状态巡检,替代网页控制台重复点击。第二,CI/CD流水线集成,流水线脚本内部调用CLI完成资源创建、镜像上传、发布配置变更,实现基础设施即代码。第三,自动化运维脚本,定时任务结合shell脚本,定时清理闲置资源、定时备份、定时巡检,输出巡检报告。第四,本地开发调试,开发人员在本地终端快速调试OpenAPI接口,不用编写复杂HTTP请求代码,快速验证接口参数。第五,AI智能体集成,部署在ECS上的Agent框架,调用本机阿里云CLI,完成云资源查询、运维操作,拓展智能体运维能力。第六,企业多账号管理,借助多profile配置,一套工具切换多套业务账号,方便运维人员管理多套业务环境。
同时也要认清CLI的能力边界,它本质是OpenAPI的命令行封装,本身不做业务逻辑封装,API接口本身的限制CLI同样继承,例如实例库存限制、接口流控限制。遇到接口流控报错,新版CLI内置自动退避重试机制,会自动重试被流控拦截的请求,减少脚本编写中的重试逻辑开发。如果业务需要更加复杂的基础设施编排,还可以结合资源编排工具,在脚本中调用CLI完成编排实例的创建执行。
安全层面有几条最佳实践需要重视。不要在脚本、日志、代码仓库中明文硬编码AccessKey密钥;生产服务器优先使用实例RAM角色、RRSA OIDC角色认证,避免静态密钥落地磁盘;根据最小权限原则配置RAM权限,不同业务环境使用不同profile身份;高危删除、释放操作,务必增加预演校验,脚本中增加确认逻辑;定期升级阿里云CLI版本,获取插件更新、安全修复与新特性。
综合来看,新版阿里云CLI凭借插件化轻量化架构、丰富的多模式凭证体系、强大的全局参数、脚本友好的JSON输出,已经成为云运维体系中不可或缺的工具。它打通了终端、服务器、流水线、智能体之间的云资源管理通道,把云平台全部能力转化为可脚本化、可自动化执行的命令。熟练掌握阿里云CLI,就可以把大量重复人工运维工作转化为自动化脚本,大幅提升运维效率,降低人工操作带来的人为失误风险。对于运维工程师、后端开发者、AI智能体开发人员,熟练掌握这套工具,能够极大提升云资源管理的工作效率。