使用阿里云灵码继续完成构建 SSL 证书管理器

温馨提醒

继常见的编码IDE插件形式支持外,阿里云通义灵码在今年6月发布了全新的独立IDE版本,虽然当前灵码IDE还只是个预览版本,但是其中新增加了NES(行间编辑预测和Inline Chat(行间对话)的能力,正好是自己构建SSL证书管理器时所需要的,所以决定尝试下使用灵码来继续完成构建SSL证书管理器的剩余需求。

信息

与其他试用 AI 编码体验形式不同,当前项目是个人实际的需求,对于灵码IDE的测试更有意义,也是深入了解 AI 编码能力的边界。

安装灵码IDE

灵码IDE也是采用VSCode框架,在操作习惯上还是能无缝兼容,而且也支持导入本地原有的VSCode的配置和插件等,能够快速进行迁移使用。而且发现灵码IDE默认就是把 AI 对话窗口集成到第二面板显示,这个操作方式也符合大部分用户的使用习惯,操作起来很是方便。

06-07-limgma-coding-agnet-01.png

注意

由于个人习惯在IDE中使用英文语言,所以需要将通义灵码的语言设置成中文,否则在对话窗口中会显示英文,体验不是很好。设置方式参考如下: 用快捷键CTRL+,打开命令面板,输入lingma:Display Language,然后点击下拉菜单选择简体中文即可。

整理项目结构

接下来用灵码IDE直接打开原先使用腾讯云Codebuddy初步开发的SSL管理项目,在第二面板中最下方点击选择智能体qwen3配置,就可以开始与通义灵码智能体用自然语言交互,描述我们对代码重构的需求,效果如下图所示:

06-07-limgma-coding-agnet-02.png

信息

灵码IDE搭配最新的QWen3大模型服务,在用户需求理解和代码生成能力上确实很不错,体验下来速度也是很快几乎不需要等待。 这里整理项目结构了是为后续不断叠加功能模块扩展做好准备,也就是所谓的基础要打牢固 😄

完成新增功能

前期只是实现了初步的证书信息获取功能,还需要进一步完善证书下载证书申请的功能,并把这些功能串起来形成完整的逻辑和功能流程,对于SSL证书管理的整体流程梳理如下:

graph TD A[开始] --> B{读取配置文件} B --> C[获取API密钥等信息] C --> D[调用API查询证书列表] D --> E[计算证书剩余有效期] E --> F[保存证书信息到指定目录] F --> G{检查证书是否即将过期?} G -- 是 --> H[申请新证书] H --> I[删除旧证书] G -- 否/跳过 --> J{是否有有效证书?} J -- 是 --> K[下载证书ZIP文件] K --> L[更新JSON记录添加SSL证书文件字段] L --> M[解压证书到指定目录] M --> N[Nginx配置检测] N --> O{Nginx配置正确?} O -- 是 --> P[Nginx服务重载] O -- 否 --> Q[输出错误日志] P --> R[更新JSON标记SSL证书已发布] R --> S[完成] Q --> S I --> F

拆解新的功能需求

有了之前的使用 AI Coding 的经验,在此便不会把完整的功能需求一股脑儿全抛给AI自己去理解和处理,而是通过模块化的方式进行不断迭代优化。为实现上述的完整功能流程,实践下来发现其中与AI对话交互的工作也不小呀,当前其中可能是与自己掌握的熟练程度有关。具体操作方式也上次开发相类似,把API接口的示例代码和功能需求发给AI进行对话,示例如下:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
## 阶段7

增加到期申请免费SSL证书

1. 请参考SSL_ApplyCertificate.sh文件的API调用示例,写个ssl_apply.sh的shellefsg脚本调用API申请证书
2. 调用API的申请的payload参数,请参考API文档为:{
    "DvAuthMethod": "DNS_AUTO",
    "DomainName": "wgc.red"
}
3. 调用API成功后,返回的结果为:{
    "Response": {
        "CertificateId": "a9TsmZkL",
        "RequestId": "0b39eaa4-f938-476d-9b26-19fb07b80936"
    }
}
4. 在ssl_manager.sh查询完成证书后的操作中,设计个公共的方法读取output/*.json的功能,把这些内容记录下来
5. 循环读取上面记录的内容,对于过期时间小于2时,调用ssl_apply.sh脚本,传入域名参数进行申请
信息

在上述的需求描述过程中尽可能的清晰些,同时适当的增加些示例参考也能提升AI对结果生成的保障。

细节完善补充

与我们自己编码工作也相类似,功能模块开发都还算比较的顺利,但是到联调阶段就比较麻烦些,不仅是对各项功能的测试验证,同时还是要完善和修复中间遇到的各种问题。建议为避免整个代码改动较大带来的隐藏风险,可以使用通义灵码的行间对话能力时行快速修复,这里只会对需要调整部分的优化进行优化,能够比较好的审核代码修复情况,只不过最终的成果还是得手动进行测试验证。在这个环节中便能是深度考验到AI编码能力的强弱。

06-07-limgma-coding-agnet-03.png

总结建议

在通义灵码的协助下花费了3个多小时,总算是给这款SSL证书管理工具画上完整句号,能够实现自动处理自已腾讯云账户中的SSL证书列表,并针对过期的SSL证书实现提前申请和更新替换,上线后也算得是一劳永逸 :haha:。过程中对于通义灵码的Agent能力使用挺靠谱的,在模型功能开发过程中基本都算是一次性就通过,重点还是在优化调试的时候比较考验AI与人的相互协作。在此分享给大家些个人经验:

重要
  1. 项目开始前就要把整体的功能模块按需求做好划分,避免后续扩展时再来返工的风险;
  2. 对于细节的优化和修复,可使用行间对话或是代码块的引用,减少等待时间,高效完成;
  3. 默认Agent在生成新代码时都会调用diff功能突出修改部分,使用双屏进行预览更清晰;
  4. 对于Agent反复修复都无效的代码,建议可考虑调用其他大模型来进行尝试修复;

最后附上SSL证书管理的代码库,大家如有自己的腾讯云账号,也可以下载代码进行体验下,期待大家的使用反馈。 🎉 😄

+ 完整代码参考如下:

Github地址: elkan1788/ssl_manager_byai
Gitee地址: lisenhui/ssl_manager_byai