华为云云应用引擎CAE快速部署Dify指南
前置准备
-
扫描下方二维码下载Terraform自动化部署模板:
-
进入华为云云应用引擎CAE服务页面,在弹窗授权给CAE中点击确定,授权CAE委托到华为云账号(只需授权一次,已授权过则可忽略此步骤)
部署Dify资源
-
登录到华为云,打开资源编排服务RFS_应用上云_云上自动化_华为云,点击RFS跳转到其控制台页面
-
跳转到资源栈,点击立即创建资源栈
-
进入选择模板页中,点击添加文件,将前置准备中下载的Terraform自动化部署模板上传,之后点击下一步
也可以直接使用存储在OBS桶中的模板链接 -
进入参数配置页中,设置资源栈必要参数,填写如下参数后,点击下一步
-
resource_name_prefix - 资源名称前缀,命名规则{resource_name_prefix}-资源英文名称,例如:vpc名称为{resource_name_prefix}-vpc,其中OBS桶的命名为保证全局唯一,额外添加了时间戳后缀。取值范围:4-24个字符,支持小写字母、数字、-(中划线)。必须以小写字母开头。禁止以中划线(-)开头。默认为dify。
-
ak - 用户访问密钥AK,在我的凭证中创建,用于将Dify应用数据写入OBS桶中。具体获取方法可以参考在哪里可以获取AK和SK?_对象存储服务 OBS_华为云。
-
sk - 用户访问密钥SK,在我的凭证中创建,用于将Dify应用数据写入OBS桶中。具体获取方法可以参考在哪里可以获取AK和SK?_对象存储服务 OBS_华为云。
-
pgsql_password - PostgreSQL数据库的管理员密码,所设置的密码长度为8~32个字符,至少包含大写字母、小写字母、数字、特殊字符三种字符的组合,其中允许输入~!@#$%^*-_=+?,()&.|特殊字符。
-
redis_password - Redis数据库密码。取值范围:8-64个字符,密码至少必须包含大写字母、小写字母、并包含数字或特殊字符`~!@#$^&*()-_=+|{},<.>/?
-
css_password - CSS向量数据库的密码。取值范围:8-32个字符,密码至少必须包含大写字母、小写字母、并包含数字或特殊字符~!@#$%^&*()-_=+|[{}];:,<.>/? 。安全集群的密码会进行弱口令校验,建议设置安全性高的密码。
-
dify_secret_key - Dify用于对会话cookie进行签名并加密数据库中的敏感信息的密钥。您可以使用 openssl rand -base64 42 生成一个强密钥。
-
-
在资源栈设置页面中,可以保持默认不进行任何配置,直接点击下一步
-
在最后配置确认页面中,再检查一遍配置的参数是否符合预期,之后点击创建执行计划
在跳出的弹窗中点击确定 -
等待执行计划状态变为创建成功,待部署后,点击部署
在这个界面可以点击费用预估以察看Dify应用依赖资源的费用(默认都按照按需付费创建相关资源)
其中CAE和ELB的费用计算暂不支持,需要参照官方文档进行预估 -
之后等待资源栈部署成功(约需等待15分钟)。在创建过程中可能存在部分因素导致资源创建失败,如账号余额不足,资源配额不足,用户设置的密码不合规,账号权限不足等,可以通过查看生成失败的原因后进行相应处理。下图报错的原因是因为CAE服务默认只允许创建一个环境,而当前账号下已有一个正在运行的环境了,需要将此环境删除,或者申请扩大环境配额。
处理完毕后,点击右上角的继续部署,rfs会重试创建对应的资源 -
在资源栈部署成功后,执行计划状态为已执行部署
在基本信息中的状态则显示为部署成功
配置CAE环境
- 进入云应用引擎CAE_应用托管服务_微服务应用托管_零代码改造上云-华为云的控制台界面
-
点击组件列表,确认当前已创建了一个环境,一个应用和六个组件。
-
点击系统设置,编辑系统网络配置,分别打开CAE环境访问公网和公网访问CAE环境开关(部分region上的CAE环境在创建后已默认打开,可不用重复打开),在VPC访问CAE环境点击添加配置,等待其配置完成
-
回到组件列表页面,依次点击部署
-
等待组件全部进入运行中状态
-
此时Dify应用已完成部署,可以点击service-web组件的公网地址进入到Dify应用中
-
首次进入Dify应用需要设置管理员账户
删除Dify资源
-
切换到组件列表中,依次停止所有CAE组件,等待停止完成
-
删除掉其中的service-api,service-web,plugin-daemon组件,等待删除完成
-
进入到系统设置页面,编辑系统网络配置,删除VPC访问CAE环境配置,等待删除完成
-
回到资源编排服务RFS_应用上云_云上自动化_华为云的控制台页面,进入资源栈页面,删除这个Dify应用对应的资源栈
删除方式选择删除资源,点击确定 -
等待资源栈删除完成即可
依赖资源
收费项目
-
一个弹性公网IP EIP,提供访问公网和被公网访问能力
-
一个弹性负载均衡 ELB,并绑定EIP,将访问流量自动分发到不同后端服务,扩展应用系统对外的服务能力,实现强大的应用容错性能
-
一个CAE环境,用于安装部署Dify6个核心组件
-
一个OBS桶,用于将Dify的知识库挂载在对象存储服务 OBS桶上
-
一个分布式缓存服务Redis®*版,兼容Redis,为用户提供高性能、低成本NoSQL数据库,同时数据流转过程中数据的一致性
-
一个云数据库 RDS for PostgreSQL实例,主备分区部署,具备跨可用区故障容灾的能力
-
一个云搜索服务 CSS OpenSearch集群,提供在线分布式搜索及语义搜索等功能
免费项目
- 一个安全组,通过配置安全组规则,为云服务器提供安全防护
-
一个VPC和一个子网,作为所有华为云资源创建的前置依赖
-
一个镜像仓库组织,作为CAE环境创建的前置依赖
方案架构
常见问题
-
如果设置了管理员账号后忘记了账号密码,则可以参考Dify官方文档重置账号密码,即进入任意service-api组件的容器,执行如下命令
flask reset-password
进入容器的方法为点击实例列表,然后切换到service-api组件,点击远程登陆
等待CloudShell服务连接到容器中,执行命令
-
Dify的邮件发送能力需要在组件的环境变量配置(参考https://github.com/langgenius/dify/blob/1.2.0/docker/.env.example)中添加邮箱相关环境变量,具体配置在service-api,service-worker,plugin-daemon组件中,并在配置完之后生效配置。其它环境变量也可参照此方法配置。
约束与限制
- 该方案部署前,需注册华为账号并开通华为云,完成实名认证,且账号不能处于欠费或冻结状态。如果计费模式选择“包年包月”,请确保账户余额充足以便部署资源的时候可以自动支付;或者在部署的过程进入费用中心,找到“待支付订单”并手动完成支付。
- 如果选用IAM委托权限部署资源,请确保使用的华为云账号有IAM的足够权限,建议使用华为主账号或admin用户组下的IAM子账户。
- 点赞
- 收藏
- 关注作者
评论(0)