AWS CLI 实战:使用aws chime list-bots查询 Amazon Chime 账户下的机器人列表
【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli
导读
本文以 aws-cli 仓库中的官方示例文档 list-bots.rst 为主线,完整讲解aws chime list-bots命令的用法:包括必需的--account-id参数、可选的--max-results与--next-token分页参数、Bot 对象的全部返回字段语义,以及命令底层的 REST 调用路径与异常处理。读完本文,你将能够在自己的 AWS 环境中准确列出指定 Amazon Chime Enterprise 账户下的全部 ChatBot,并正确解读每个字段的含义。
1. 命令概述:list-bots做什么
aws chime list-bots用于列出与指定 Amazon Chime Enterprise 账户关联的所有机器人(Bot)。在 Amazon Chime 中,Bot 是一种允许 Enterprise 账户管理员配置接口、从而接收来自 Amazon Chime 的事件的资源("A resource that allows Enterprise account administrators to configure an interface to receive events from Amazon Chime")。
从该命令在 AWS 服务模型(service-2.json)中的定义可以看出,它对应一个GET请求,URI 模板为/accounts/{accountId}/bots:
"ListBots": { "name": "ListBots", "http": { "method": "GET", "requestUri": "/accounts/{accountId}/bots", "responseCode": 200 }, "input": {"shape": "ListBotsRequest"}, "output": {"shape": "ListBotsResponse"}, "errors": [...] }也就是说,这个命令本质上就是向 Chime API 发送一个 HTTP GET 请求,把accountId拼进 URL 路径中,服务端返回 200 与该账户下的机器人列表。
2. 参数详解
根据ListBotsRequest形状(service-2.json),该命令支持以下参数:
| 参数 | 位置 | 是否必填 | 说明 |
|---|---|---|---|
--account-id | URI 路径 | 必填 | Amazon Chime 账户 ID,会拼接到请求 URI 的accountId位置 |
--max-results | Query 字符串 | 可选 | 单次调用返回的最大结果数,默认值为 10,取值范围 1~99(ResultMax形状定义了max: 99, min: 1),对应 query 参数名max-results |
--next-token | Query 字符串 | 可选 | 用于获取下一页结果的分页令牌,对应 query 参数名next-token |
一个值得注意的实现细节是:ListBots没有出现在 paginators-1.json 的pagination配置中(该文件中只有ListAccounts和ListUsers)。这意味着它不支持 CLI 的--paginate自动分页选项,你必须手动通过响应中的NextToken来翻页。
3. 完整命令示例
下面是官方示例文档(list-bots.rst)给出的标准用法:
aws chime list-bots \ --account-id 12a3456b-7c89-012d-3456-78901e23fg45其中12a3456b-7c89-012d-3456-78901e23fg45是示例账户 ID,实际使用时请替换为你自己的 Amazon Chime Enterprise 账户 ID(可以在aws chime list-accounts的输出中查到)。
如果账户下机器人数量较多,建议显式控制分页大小并翻页获取:
# 每次最多返回 5 条 aws chime list-bots \ --account-id 12a3456b-7c89-012d-3456-78901e23fg45 \ --max-results 5 # 使用上一页返回的 NextToken 继续获取后续结果 aws chime list-bots \ --account-id 12a3456b-7c89-012d-3456-78901e23fg45 \ --max-results 5 \ --next-token "示例NextToken值"4. 输出结果解析
官方示例中的输出如下:
{ "Bot": { "BotId": "123abcd4-5ef6-789g-0h12-34j56789012k", "UserId": "123abcd4-5ef6-789g-0h12-34j56789012k", "DisplayName": "myBot (Bot)", "BotType": "ChatBot", "Disabled": false, "CreatedTimestamp": "2019-09-09T18:05:56.749Z", "UpdatedTimestamp": "2019-09-09T18:05:56.749Z", "BotEmail": "myBot-chimebot@example.com", "SecurityToken": "wJalrXUtnFEMI/K7MDENG/bPxRfiCYEXAMPLEKEY" } }对照服务模型中的Bot形状(service-2.json),各字段含义如下:
| 字段 | 类型 | 含义 |
|---|---|---|
BotId | String | 机器人 ID |
UserId | String | 与该机器人关联的 Chime 用户的唯一 ID |
DisplayName | SensitiveString | 机器人显示名称 |
BotType | BotType(枚举) | 机器人类型,当前枚举值仅ChatBot |
Disabled | NullableBoolean | 为true时表示该机器人已被停止运行("When true, the bot is stopped from running in your account") |
CreatedTimestamp | Iso8601Timestamp | 机器人创建时间,ISO 8601 格式 |
UpdatedTimestamp | Iso8601Timestamp | 机器人最近更新时间,ISO 8601 格式 |
BotEmail | SensitiveString | 机器人邮箱地址 |
SecurityToken | SensitiveString | 用于 Amazon Chime 与出站事件端点(outgoing event endpoint)认证的安全令牌 |
两点提醒:
- 官方示例输出为了简洁仅展示了单条
Bot对象;根据服务模型ListBotsResponse,响应实际包含的是一个Bots列表(BotList,即 Bot 对象数组)以及可选的NextToken。当账户下存在多个机器人时,输出会是一个包含多条 Bot 记录的数组。 SecurityToken、DisplayName、BotEmail在模型中被标记为SensitiveString(敏感字符串),在日志脱敏或凭据管理中应予以注意,切勿在公开场合泄露。
5. 从创建到查询:Bot 生命周期中的list-bots
list-bots通常用于验证或审计机器人状态,可以结合其他 Chime Bot 相关命令形成完整的管理闭环:
创建:使用
aws chime create-bot,见 create-bot.rst:aws chime create-bot \ --account-id 12a3456b-7c89-012d-3456-78901e23fg45 \ --display-name "myBot" \ --domain "example.com"查询:使用
aws chime list-bots列出账户下所有机器人,检查Disabled、CreatedTimestamp等字段确认状态。更新/轮换令牌:可通过
aws chime update-bot修改机器人信息,或通过regenerate-security-token重新生成SecurityToken(对应示例见 regenerate-security-token.rst)。
6. 错误处理与常见异常
ListBots操作在服务模型中声明了以下可能的错误(见 service-2.json),CLI 调用失败时可能抛出其中之一:
| 异常 | 含义 |
|---|---|
BadRequestException | 请求参数非法,例如--account-id格式错误 |
ForbiddenException | 请求被拒绝,通常与权限相关 |
NotFoundException | 指定的账户 ID 不存在 |
UnauthorizedClientException | 客户端未授权 |
ThrottledClientException | 请求过于频繁被限流 |
ServiceUnavailableException | 服务暂时不可用 |
ServiceFailureException | 服务端内部故障 |
排查建议:先确认账户 ID 是否正确、当前 IAM 身份是否具备chime:ListBots相关权限;若为限流或服务不可用,可稍后重试。
7. 适用前提与限制
- 该命令只适用于Amazon Chime Enterprise 账户,且用于列出的是当前管理员 AWS 账户权限范围内、与该账户 ID 关联的机器人。
--max-results的取值范围为 1~99,默认 10,超出范围服务端会返回参数校验错误。list-bots不支持 CLI 自动分页(未在 paginators-1.json 中注册),需要自行通过NextToken循环取回全部结果。- Amazon Chime 服务本身已逐步被 Amazon Chime SDK 相关服务所演进替代,在规划新项目时请结合当前 AWS 官方公告评估服务可用性;本命令的 API 行为以当前仓库中 service-2.json 所描述的模型为准。
小结
通过本文,你已经掌握了aws chime list-bots的完整用法:从必填的--account-id,到分页参数--max-results/--next-token,再到响应中每个 Bot 字段的语义,以及底层GET /accounts/{accountId}/bots的实现与异常映射。结合 list-bots.rst 官方示例和 service-2.json 服务模型,你可以直接在终端中查询、审计自己账户下的 Chime 机器人状态。
【免费下载链接】aws-cliUniversal Command Line Interface for Amazon Web Services项目地址: https://gitcode.com/GitHub_Trending/aw/aws-cli
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考