# 使用默认 profile 登录,未指定 region 时会提示输入
ve login
# 推荐:指定 profile 和地域,profile/region 支持 -p/-r 简写
ve login -p dev -r cn-beijing
# 无浏览器、远程服务器或容器环境使用跨设备登录
ve login -p dev -r cn-beijing --remote
使用非 default profile 登录后,业务命令不会自动切换 profile;需要先执行 ve configure profile --profile dev
本机浏览器无法回跳 CLI 所在机器时,使用 --remote
完整使用流程示例:
# 1. 登录并写入 dev profile
ve login --profile dev --region cn-beijing
# 2. 如果 dev 不是当前默认 profile,先切换当前使用的配置
ve configure profile --profile dev
# 3. 执行业务命令时会使用当前 profile 中的 console-login 临时凭证
ve ecs DescribeInstances
# 4. 使用结束后清理本地登录状态
ve logout --profile dev
Console 登出 (logout)
# 登出 default profile
ve logout
# 登出指定 profile
ve logout -p dev
# 登出当前配置中的所有 Console Login profile
ve logout --all
该命令用于清理 ve login 建立的本地登录状态。它只删除本地缓存凭证并清除 profile 中的 login-session,不会删除 profile,也不会向服务端发起请求。
Volcengine Command Line Tools
中文 | English
特别说明
为了便于用户使用,从v1.0.20版本开始,火山引擎CLI工具命令前缀由“volcengine-cli” 更新为“ve”。低版本不受影响,请升级到v1.0.20及以后版本的用户及时更新指令前缀(可参考alias命令统一设置)。
概述
安装 火山引擎CLI
通过release获取客户端
自行编译获取客户端
配置 火山引擎CLI
将 火山引擎CLI 配置进环境变量
检查一下 $PATH 系统变量是否存在 /usr/local/bin,若没有则请您根据实际情况为 火山引擎CLI 设置可用的环境变量
执行下面的命令,将 ve 拷贝至 /usr/local/bin 目录下即可使用
配置凭证
调用服务需要用到 AK,SK,region,可以通过以下两种方式进行配置
通过 ve configure set 设置,示例
支持参数及相关说明
若配置文件中无配置,则会尝试从 export 的环境变量中读取配置
configure命令的其他操作
ve configure set新增或者修改普通 AK profile 后,当前 configure 中的默认使用 profile 会被切换到新增或者修改的 profile 上;ve configure sso不会自动切换当前 profile,配置完成后如需默认使用该 SSO profile,请执行ve configure profile --profile [配置名]获取指定配置(profile)信息
其中 profile 为可选字段,若不指定 profile 字段则会展示当前配置;若指定了 profile 则 火山引擎CLI 会尝试获取指定配置并展示
若配置不存在,则返回的配置字段全为默认值
显示当前所有配置(profile)信息
切换当前使用的配置(profile)信息 请确保版本大于或者等于>=1.0.16
其中 profile 为必选字段,指定了 profile 则 火山引擎CLI 会尝试获切换当前的配值
若配置不存在,当前的配置不会发生切换,并且会给出错误的提示
新建/修改配置(profile)
新建或者修改配置后,当前的使用配置会切换到修改的配置上
新建配置时必须指定 profile 字段和 region 字段,修改已有配置必须指定 profile 字段
其余可指定的字段:
各个字段的作用您可以参考上节中 “支持参数及相关说明” 部分
删除配置(profile)
删除配置时必须指定 profile 字段以指示需要删除的配置名
若待删除的是当前正在使用的配置,则删除成功后 火山引擎CLI 会尝试从剩余的配置中随机挑选一个作为当前配置
SSO 快速上手
SSO 配置分两层:
sso-session保存企业 SSO 入口(Start URL、Region、Scopes),SSO profile 保存某个账号和角色的绑定信息。首次使用建议按下面顺序执行:注意:
ve configure sso会写入 SSO profile,但不会自动修改当前默认 profile。若跳过第 3 步,业务命令仍会使用原来的 current profile。SSO 命令关系
ve configure sso-sessionve configure ssove configure profile --profile [配置名]ve sso loginve sso logout配置 SSO 会话 (configure sso-session)
该命令用于新增或修改 SSO 会话,后续可被
ve configure sso复用。参数说明:交互式流程说明:
配置 SSO 类型 profile (configure sso)
该命令用于创建或更新 SSO 类型 profile。执行时会关联一个 SSO 会话,走设备码授权流程,拉取账号列表和角色列表供用户选择,最后把
mode=sso、sso-session-name、account-id、role-name、region写入~/.volcengine/config.json。参数说明:
注意事项:
configure sso会完成首次授权和账号/角色选择,但不会切换当前默认 profile;请按需执行ve configure profile --profile [配置名]ve configure sso --profile [配置名] --sso-session [会话名]日常登录、自动刷新与登出
业务命令的自动刷新
当前默认 profile 为 SSO 类型时,业务命令会自动检查并刷新 STS 临时凭证:
session-token未过期,直接复用account-id/role-name换取新的 STS,并写回 profileve sso loginSSO 登录 (sso login)
ve sso login用于显式重新登录 SSO,会重新走设备码授权并缓存新的 access token。与 AWS SSO login 语义一致,每次执行都会重新认证当前 SSO 会话,不会使用已有 refresh_token 静默换取 access token。参数说明:
登录行为说明:
sso login不会重新选择 account/role;账号和角色来自ve configure sso写入的account-id/role-name--no-browser用于关闭自动打开浏览器SSO 登出 (sso logout)
ve sso logout用于退出 SSO 登录态。指定--sso-session时退出该会话;不指定时,未配置任何会话会返回错误,仅有一个会话时直接登出该会话,有多个会话时进入交互式选择,并支持选择 “All SSO sessions” 批量登出。登出会执行:
access-key、secret-key、session-token、sts-expiration登出不会执行:
account-id/role-name因此,登出后如需继续使用原账号和角色,重新执行
ve sso login即可;如需切换账号或角色,请重新执行ve configure sso。SSO 常见问题
执行完
ve configure sso后业务命令还在使用旧账号怎么办? 请执行ve configure profile --profile [配置名]切换当前默认 profile。configure sso只写入 profile,不会自动切换 current profile。什么时候需要执行
ve sso login? 首次ve configure sso已完成授权。日常业务命令会自动复用或静默刷新凭证;只有当 CLI 提示重新登录,或者你想主动刷新 SSO 登录态时,再执行ve sso login。为什么
ve sso login每次都会重新打开授权流程? 这是显式登录语义:每次都会重新走设备码授权,不会用已有 refresh_token 静默完成登录。想换账号或角色怎么办? 重新执行
ve configure sso --profile [配置名] --sso-session [会话名],在交互列表中重新选择 account 和 role。没有图形界面的机器怎么登录? 在
ve configure sso或ve sso login后加--no-browser,按命令行输出的授权地址在浏览器中完成授权。Scopes 应该怎么填? 通常可以省略,默认使用
cloudidentity:account:access,offline_access。如果手动填写,只允许cloudidentity:account:access和offline_access,CLI 会自动去重并校验。Console 登录 (login)
该命令通过火山引擎控制台完成 OAuth 2.0 + PKCE 登录,并将临时 STS 凭证缓存到本地,后续业务命令可复用该 profile 的临时凭证。
参数说明:
--profile, -p:配置名称,默认default--region, -r:地域;未指定时会提示输入,直接回车使用cn-beijing--remote:跨设备登录;按终端输出的 URL 在浏览器完成登录,并将浏览器展示的授权码完整粘贴回终端--endpoint-url:登录服务地址,默认https://signin.volcengine.com,通常无需修改注意事项:
console-login模式,并记录login-sessiondefaultprofile 登录后,业务命令不会自动切换 profile;需要先执行ve configure profile --profile dev--remote完整使用流程示例:
Console 登出 (logout)
该命令用于清理
ve login建立的本地登录状态。它只删除本地缓存凭证并清除 profile 中的login-session,不会删除 profile,也不会向服务端发起请求。参数说明:
--profile, -p:配置名称,默认default--all:清理当前配置中的所有console-loginprofile;开启后忽略--profile注意事项:
ve logout不带--profile时只处理defaultprofile,不会自动按current登出console-loginprofile 可使用该命令;AK/SSO profile 不适用ve login配置自动补全
使用 ve completion –help 可以查看各种终端下配置自动补全的方式,用户可以根据提示信息自己选择是否配置自动补全功能
Bash
火山引擎CLI 的 Bash 补全脚本可以通过 ve completion bash 进行查看,在 shell 中导入该自动补全脚本,即可开启自动补全功能
1. 安装 bash-completion
火山引擎CLI 补全脚本依赖于工具 bash-completiom,所以你必须先安装并启用它(可以用命令 type _init_completion 检查 bash-completion 是否已安装)
安装:yum install bash-completion 或 apt-get install bash-completion
启用 bash-completion:source /usr/share/bash-completion/bash_completion
建议将 source /usr/share/bash-completion/bash_completion 添加至 ~/.bashrc 中
检查 bash-completion 是否安装成功:执行 type _init_completion 验证 bash-completion 的安装状态
2. 配置自动补全
按以下步骤配置即可在 Bash 下开启自动补全功能:
之后重新加载 Shell (或者 source ~/.bashrc) 后即可生效
若出现 _get_comp_words_by_ref: command not found 的错误,请再次检查 bash-completion 是否安装配置成功
Zsh
火山引擎CLI 的 Zsh 补全脚本可以通过 ve completion zsh 进行查看,在 shell 中导入该自动补全脚本,即可开启自动补全功能
按以下步骤配置即可在 Zsh 下开启自动补全功能:
之后重新加载 Shell (或者 source ~/.zshrc) 后即可生效
配置颜色
使用 ve enable-color 可以开启彩色显示功能
使用 ve disable-color 可以关闭彩色显示功能
使用 火山引擎CLI
查询支持的服务列表及服务下支持的接口列表
查看版本
调用API
使用 火山引擎CLI 调用 API 时,基本命令结构如下:
您可以使用 ve <service name> <action> –help 查看想要调用的API的参数列表、返回结果等信息,例如:ve ecs DescribeInstances –help
若需要查看更详细的信息,您也可以在 https://www.volcengine.com/docs 进行查阅
以下提供一些代码示例:
基本使用
支持传入 JSON
对于 ContentType 为 application/json 的请求,火山引擎CLI 还支持直接将 body 作为 JSON 数据传入
Security and privacy
This project takes security seriously. For vulnerability reporting and supported versions, see SECURITY.md