Hacker News 中文摘要

RSS订阅

为Cloudflare打造通用命令行界面 -- Building a CLI for All of Cloudflare

文章摘要

Cloudflare推出了一款统一命令行工具(CLI),旨在为开发者及其AI代理提供便捷的云服务访问方式。该工具整合了Cloudflare旗下100多款产品、近3000个API接口,支持代码模式、本地开发测试、多语言SDK等功能,大幅简化了云服务的配置和部署流程。

文章总结

构建面向整个Cloudflare平台的CLI工具

Cloudflare拥有庞大的API体系,涵盖100多个产品及近3000个HTTP API操作。随着开发者越来越多地使用AI代理来构建应用、配置账户及查询数据,我们致力于让所有产品通过多样化接口(如CLI、SDK、Terraform等)提供服务。然而,现有CLI工具Wrangler对许多产品的支持仍不完善。

为此,我们正在重构Wrangler,目标是打造一个覆盖全平台产品的统一CLI,支持通过基础设施即代码(IaC)进行配置。目前,我们发布了技术预览版cf,用户可通过npx cf或全局安装体验。虽然当前仅支持少量产品功能,但未来将整合全部API,并优化命令输出以适应代理与人工操作。

技术实现革新

为保持与产品开发的同步,我们创建了基于TypeScript的新架构系统,替代传统的OpenAPI规范。这一系统能自动生成CLI命令、配置和绑定API等,确保跨接口的一致性。例如:
- 强制统一命令语法(如始终使用get而非info
- 本地与远程资源操作默认值标准化
- 通过类型化架构减少人工维护错误

本地开发工具Local Explorer

同步推出的Local Explorer功能(Beta版)允许开发者在本地环境中完全模拟Cloudflare资源(如KV、R2、D1等),无需依赖网络即可调试数据。通过/cdn-cgi/explorer/api接口,代理可直接管理本地资源,其API形态与云端完全一致,仅需添加--local标志即可切换。

期待您的反馈

我们邀请开发者试用技术预览版,并在Cloudflare开发者社区分享需求:
- 希望简化为单行命令的复杂操作
- 期待集成到wrangler.jsonc的配置项(如DNS记录、缓存规则)
- 代理工具在实际使用中的痛点

此次升级标志着Cloudflare向"全平台本地化开发"愿景迈出关键一步,未来将持续优化开发者体验。

(注:原文中的图片链接、推广内容及技术术语如Miniflare、Cap n’ Web等非核心细节已精简,保留主要功能描述与用户操作指引。)

评论总结

以下是评论内容的总结:

  1. 对TypeScript的争议

    • 批评观点:认为TypeScript不如C语言实用,无法创建共享对象。
      引用:"typescript sucks...way worse than...C"
    • 支持观点:TypeScript是软件工程的通用语言。
      引用:"It’s the lingua franca of software engineering"
  2. CLI功能需求

    • 希望CLI能提前显示所需API权限,方便本地开发。
      引用:"display the required API token permissions upfront"
    • 建议增加权限检查命令,提示缺失或多余的权限。
      引用:"cf permissions check...what's missing or unneeded"
  3. CLI工具的开源与安装方式

    • 询问是否开源及是否提供独立二进制文件,而非依赖Node.js工具链。
      引用:"Is it open source?...single binary instead of requiring nodejs"
  4. 工具设计的用户导向

    • 强调工具应以人类用户体验为核心,而非AI代理。
      引用:"should be a good experience for humans!"
    • 批评Cloudflare的Terraform提供商v5质量差,缺乏测试。
      引用:"unusable v5 terraform provider...Quality over quantity"
  5. 具体功能改进建议

    • 希望增加CLI预览功能,便于批量操作多域。
      引用:"CLI preview for UI action...apply same changes to multiple domains"
    • 要求修复账单通知的UX问题。
      引用:"fix billing notifications...ux makes it impossible"
  6. 对CLI覆盖范围的评价

    • 赞赏全面CLI覆盖的举措。
      引用:"Complete CLI coverage is so great"
    • 批评公司因AI代理才投资CLI工具,忽视客户需求。
      引用:"customers never mattered...LLM agent is vitally important"
  7. 技术实现与替代方案

    • 提到TypeSpec和OpenAPI的替代方案,如Huma和Fuego。
      引用:"TypeSpec...what if OpenAPI was good"
    • 分享使用OpenAPI生成CLI的经验,但指出模型推断语法的问题。
      引用:"models are not doing a great job at inferring the syntax"
  8. 命名建议

    • 提议将CLI命名为“flare”。
      引用:"Please call it flare"
  9. 其他

    • 对欧洲云服务的期待。
      引用:"100% European clouds"
    • 对Cloudflare分享技术笔记的感谢。
      引用:"Thanks to Cloudflare for sharing their notes"

总结涵盖了不同观点,保留了关键引用,并保持了简洁性。