用途:在华为云上按 Solution as Code(SAC)方案,用 Terraform 端到端部署 Dify 开源 LLM 应用开发平台。架构为 VPC + 子网 + 安全组(放通 ICMP/HTTP/HTTPS 入方向)、一台 ECS 实例和一条 EIP(1-300 Mbit/s),cloud-init 在 Ubuntu 上安装并启动 Dify 服务,通过 dify_version 参数支持 Dify 社区版本与 flexus-ai-agent 模式。工具链为 Playwright CLI(提取价格/方案元数据)+ Python 3.8+(辅助脚本)+ Terraform(基础设施编排),不使用 KooCLI。
前置条件:Python 3.8+、Playwright CLI、Terraform 1.15.4+;通过环境变量 HW_ACCESS_KEY、HW_SECRET_KEY 提供华为云 AK/SK,未设置时需手动编辑 <temp_dir>/dify-workdir/terraform.auto.tfvars.json 填写;需具备足够权限的 IAM 用户或 rf_admin_trust 委托。安全要求:绝不在对话或输出中暴露 AK/SK,不要求用户在聊天中输入 AK/SK,优先使用 IAM 用户而非主账号,apply、destroy 等变更操作需用户明确确认。
用法流程:先用 extract_sac_deploy_info.py 提取方案信息,再下载并归一化模板(curl 下载 dify-ecs.tf,normalize_tf_providers.py --region 写入 region 等参数),用 list_tf_variables.py 与用户确认变量;随后执行 terraform init、terraform plan,必须停止并向用户确认后才能 terraform apply,接着用 terraform state list 和 terraform output -json 验证,最后 terraform destroy 清理,成功后再删除 terraform.auto.tfvars.json。主要参数包括 access_key、secret_key、solution_name、region_id(默认 cn-north-4)、dify_version(默认 1.11.4)、ecs_flavor(默认 t6.xlarge.2)、ecs_password、dify_admin_password(flexus-ai-agent 模式生效)、system_disk_size(默认 100)、bandwidth_size(默认 300)、charging_mode 及计费周期。部署后 Dify UI 为 http://<EIP>,cloud-init 约需 10-15 分钟,可通过 curl -s http://<EIP> 返回 200 验证。限制:所有脚本输出为 JSON;敏感变量为空或过弱时阻止 apply;terraform.auto.tfvars.json 属敏感文件,不得提交到版本库。