跳到主要内容

核心概念

ecctl 是面向 Agent 的阿里云资源控制器。它通过统一的资源命令和机器可读契约描述操作,因此 Agent 或脚本可以先检查命令,再变更云资源。

资源意图

资源命令使用统一语法,只有嵌套资源包含父资源段:

ecctl <product> [<parent>] <resource> <action> [id] [flags]

action 表达用户意图。例如,ecctl ecs instance update 可以根据输入字段调用不同的 ECS API,不需要为每个 API 分别暴露顶层命令。产品、资源、动作和别名见命令模型

可检查的命令契约

每个已建模操作都有本地可读的契约:

ecctl schema ecs.instance.create --brief

契约描述必填参数、风险等级、DryRun、幂等、等待行为和输出。具体命令应以契约为准,推荐的检查流程见 Schema

同步资源操作

许多阿里云变更 API 会在资源到达目标状态前返回。ecctl 可以等待目标状态,并在返回前回读资源。需要改变执行时机时,命令契约会提供 --no-wait--timeout

资源操作通过实际命令输出说明完整生命周期。

结构化结果

默认输出为 JSON。结果使用资源语义字段,错误使用稳定对象和非零退出码。工作流执行过的 API 会记录在 actions 中,服务端返回 Request ID 时也会保留。

输出模式和错误处理见输出、语言与错误

Spec 驱动行为

资源行为声明在 YAML spec 中。spec 定义参数、OpenAPI 绑定、响应映射、waiter 和命令工作流,CLI 命令面与 schema 输出由同一份定义生成。

贡献者可通过资源 Specs了解格式。需要比较 ecctl、直接 OpenAPI 和阿里云 CLI 时,请阅读通用差异