@agilecustoms/envctl

中文文档
1.33.1发布于 2026/10/30UNLICENSEDES Module近 30 天下载 1734

用于管理环境的节点.js CLI 客户端

中文使用文档
文档目录8 节
  1. 安装
  2. 设置
  3. 使用量
  4. 限制
  5. 额外特性 :
  6. 支助
  7. 路线图
  8. 永恒的环境

内存

┌────────────────────────────┐
│ IN NON-PROD ACCOUNT        │
│                            │
│ You run: terraform apply   │
│ We run:  terraform destroy │
└────────────────────────────┘

EnvCtl 是将Terraform环境生命周期管理自动化于非验证账户的工具

主要用途案例: 您为 dev 测试提供了资源, 工具在工作日结束时会摧毁它们, 所以 您节省$

信封免费供个人使用

安装

EnvCtl 需要节点22或以上

npm install -g @agilecustoms/envctl

设置

目前(2026年5月)EnvCtl正在进行α测试,请联系作者 切库拉耶瓦莱克塞@gmail.com 用于登机. 一旦获得 API 密钥, 您可以运行 :

envctl configure

使用量

这很容易 随便用 envctl 改为 terraform数字 :

envctl init -backend-config=key=my-test-env
envctl plan  # any normal terraform plan arguments
envctl apply # any normal terraform apply arguments
envctl delete

说明。 它现在可以使用"去除"命令,而不是"去除",而是在EnvCtl后端发射Aync破坏过程. 为此,您需要创建用户/角色, 并设定信任政策, 让 EnvCtl 承担并代表您删除资源

优点:

  • (主)你可以忘记跑 destroy,EnvCtl 将在工作日结束时删除资源(配置)
  • 通常破坏需要很长的时间(如果在VPC中使用Lambda的话,最多40分钟). 你用不着等它
  • (未来) 通常畸形只是不能删除一个资源,因为例如,S3桶中已经有一些对象. 我们称之为"硬资源". EnvCtl 也会删除它们

由于现在在远程服务器上运行了一个销毁程序,你可能需要知道正在发生什么. 为此,您可以使用下列命令:

envctl status # shows environment status: ACTIVE, DELETING, DELETE_ERROR
envctl logs   # shows most recent destroy logs - helpful if status returns DELETE_ERROR

logs 保存文件并在文件管理器中打开其目录。 它没有打开 --no-open 输出或输出不是终端( AI 代理、 脚本、 CI) - 然后使用打印的文件路径

限制

截止2026年5月:

  • 只支持 AWS 。 未来计划提供全球气候方案、Azure和其他供应商 (发送电子邮件到 切库拉耶瓦莱克塞@gmail.com 如果您想成为其他提供者的测试者)
  • 仅S3 远程状态( 其他远程状态计划)

额外特性 :

  • 如果由于锁定出错而应用失败, EnvCtl 将提议您强制解锁状态并重试 apply。 。 。 . 在非交互模式( CI) 中, 它会因原锁错误而失败( 很快会永远等待)
  • 如果由于已知的瞬态 AWS 错误而应用失败, EnvCtl 重试 apply 一次 一次吗. 保存的计划不能被应用两次(在失败的应用后被搁置),所以 envctl apply {planfile} EnvCtl 首次重新运行 plan 与它保存的参数 envctl plan -out={planfile} (单位:千美元) .terraform/envctl.json) (中文(简体) ). 未制作的计划文件 envctl plan (或自此已更改)未再审
  • 用于多租户账户的 EnvCtl 自动注入定义环境密钥/前缀的变量
  • 和 AWS CLI 一样, EnvCtl 支持配置文件, 因此您可以在不同的账户中切换

支助

目前,支助是通过电子邮件进行的 [email protected]

路线图

  • OIDC支持(目前客户需要创建带有访问密钥的IAM用户)
  • 支持其他供应商(GCP、Azure)
  • 自助网站(目前通过聊天录用)
  • 扩展“ Hard 资源” 支持( 非空 S3 桶, Api Gateway 中修正的路由等)
  • 环境删除失败时在 Slack/电子邮件中发出通知
  • 企业扩展分析

永恒的环境

在CD管线中使用了以至端的测试. 此类环境不是在工作日结束时删除,而是在创建一段时间后删除 (可配置,一般在一个小时之内——进行所有测试所需的时间). 关键想法:如果测试成功,你的CD管道的最后一步将运行 envctl delete。 。 。 . 测试完成后,您的管道就结束, 你不需要再等几分钟 资源删除了! 但如果测试失败了, 你有时间调查失败, 并有机会延长环境寿命!

这个功能可供α/β测试者使用,在活体释放后的第一个月使用,然后支付

联系人 切库拉耶瓦莱克塞@gmail.com 电子环境演示

版本与发布记录

@agilecustoms/envctl 共发布 193 个版本,首次发布于 2025/03/26;过去 12 个月发布了 94 个版本。

版本发布日期距今
1.33.1latest2026/10/3010 天前
1.33.02026/10/2516 天前
1.32.22026/10/2516 天前
1.32.12026/10/2516 天前
1.32.02026/10/1822 天前
1.31.02026/10/1228 天前

关于 @agilecustoms/envctl 的常见问题

@agilecustoms/envctl 是什么?

用于管理环境的节点.js CLI 客户端

如何安装 @agilecustoms/envctl?

在项目目录运行 npm install @agilecustoms/envctl,或使用 pnpm add / yarn add / bun add。它还提供命令行工具 envctl,可以用 npx envctl 直接运行。

@agilecustoms/envctl 支持 TypeScript 吗?

该包的 package.json 没有声明类型入口。需要类型提示时,可以在 npm 上查找社区维护的 @types/agilecustoms__envctl 是否存在。

@agilecustoms/envctl 支持 ESM 还是 CommonJS?

以 ES Module 形式发布,推荐使用 import 引入。在 CommonJS 项目中,Node.js 20.19+ / 22.12+ 可以直接 require() 不含顶层 await 的 ES Module,更早的版本需要改用动态 import()。

@agilecustoms/envctl 需要什么版本的 Node.js?

package.json 的 engines 字段要求 Node.js >=22.0.0。版本不符时 npm 默认只给出警告,开启 engine-strict 后会拒绝安装。

@agilecustoms/envctl 可以商用吗?

@agilecustoms/envctl 使用 UNLICENSED 许可。作者声明为 UNLICENSED,即不授予公开使用许可(与公共领域的 Unlicense 不同)。使用前需获得作者授权。以上为概括,不构成法律意见,请以许可原文为准。

@agilecustoms/envctl 的下载量有多少?

根据 npm 官方下载统计,@agilecustoms/envctl 在 2026/10/05 – 2026/11/03 这 30 天内被下载 1,734 次,日均约 58 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入,适合横向比较热度,不能直接等同于使用人数。

@agilecustoms/envctl 还在维护吗?

最新版本 1.33.1 发布于 2026/10/30(10 天前);至今共发布 193 个版本,其中过去 12 个月发布了 94 个;首次发布于 2025/03/26。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。