F颜 TCB系列学习文章——云开发的一键部署(十一)

2020-12-27 00:47:20 浏览数 (1)

概述

云开发扩展能力是云开发团队为开发者提供的一站式云端服务,旨在降低开发者使用云服务的门槛,助力开发者快速开发应用。

计费模式

扩展能力会基于云开发和其他云上资源构建,当您使用云开发扩展时,您只需要为您使用的云资源付费;云开发与云上其他资源分开计费,您可以在 费用中心 查看具体信息。

安装方式

使用云开发控制台

  1. 打开 云开发扩展控制台;
  2. 选择希望安装的扩展;
  3. 单击【安装】,进行扩展程序的安装;
  4. 等待扩展程序安装完成即可使用;

Discuz! Q篇

云开发支持一键部署 Discuz!Q (opens new window)应用。通过云托管结合静态网站托管、共享文件存储 CFS、云数据库 CynosDB for MySQL 等各项云计算资源能力,为您提供高性能、高可靠性、可弹性扩缩容的的应用体验。

方案特性

介绍

省钱

云托管没有流量可缩容到 0;存储按实际存储容量计费。无需为闲时资源买单。按量付费,无需预先支出

省心

Serverless 无服务器化,架构弹性可自动扩缩容,无需担心网站崩溃

更快

用户发帖上传的图片与附件,享受 CDN 节点就近加速分发

更便捷

自带三级域名可以快速访问,无需通过 IP 访问

适用场景

  • 不具备专业的运维开发人员的个人站长,无需预估业务规模,可自动扩缩容。
  • 访问流量不稳定,无流量时,云托管将自动缩容到 0,减少成本。
  • 对数据安全要求敏感的行业,数据独立存储在专业的云数据库 CynosDB for MySQL 中。

部署架构配置

资源

架构

云托管(opens new window)

默认配置 0.25 核 0.5G 内存的容器,伸缩范围 0 - 4 个实例,遇到 CPU 负载大于 60 将会进行扩容。无流量则会缩容到 0,不产生费用

静态网站托管(opens new window)

按照实际容量与流量付费

共享文件存储(Cloud File Storage,CFS)(opens new window)

按照实际容量付费,DAU 1000 的站点预估消耗量在 5GB 以下

云数据库 CynosDB for MySQL(opens new window)

数据库 1C1G,存储按照容量计费

安装 Discuz! Q 资源配置架构图如下:

安装流程

  1. 登录 云开发控制台 (opens new window)。
  2. 单击【新建环境】,新建一个按量计费环境,详情可参见 开通环境 (opens new window)文档。
  3. 环境创建完后,单击【环境卡片】,进入环境管理页面。
  4. 单击左侧导航栏底部的 【扩展应用 (opens new window)】,在更多扩展能力中,可以看到 Discuz!Q 应用。
  1. 在 Discuz!Q 应用中,单击【安装】,进入扩展安装流程。
    • 确认应用相关资源
    • 授予云开发相关资源的操作权限
    • 扩展云资源准备,声明会依赖的 2 个资源(文件存储、云数据库)
    • 扩展程序配置,请勿长期使用默认的密码,注意修改密码,避免管理后台被他人登录
  2. 已安装列表里显示 Discuz!Q 应用正在安装中,安装完成后单击可进入详情页。
  3. 详情页内,可以查看 Discuz!Q 的访问地址。

部署异常

安装过程中可能遇到一些异常,请根据异常提示查看以下解决方案进行解决。如果遇到无法解决的问题,请 提交工单 (opens new window)联系我们,我们将协助你解决。

账户余额不足

Discuz!Q 应用创建时,会一同创建云数据库 CynosDB for MySQL。创建数据库资源会预先扣 1 个小时的费用,为了保证服务的可用,推荐先 充值腾讯云账户 (opens new window)5 元钱。

HTTP 访问服务 “/” 路径已经被占用

Discuz!Q 将会占用 “/” 路径,如果当前环境的 “/” 已经被占用,推荐再创建一个按量计费环境进行安装。

CynosDB 被隔离

错误信息 queryClusterDetail failed, err=DescribeClusters invalid response.detail.status[isolated],代表 CynosDB 集群被隔离,请前往回收站 (opens new window)将该集群恢复或者直接删除。

共享文件存储 CFS 资源售罄

错误信息:”参数值错误:该地域无法提供服务“,代表 共享文件存储 CFS 该地域可用区售罄。我们将及时补货,请耐心等待。

部署异常后,但是资源已经创建

Discuz!Q 涉及资源较多,过程中可能产生异常。顺序为先创建 CFS、CynosDB for MySQL 资源,再开通云托管。 CFS 是按照存储量计费,没有存储数据则不产生费用。 CynosDB for MySQL 与服务器类似,是按照使用时间计费,即使没有调用也会计费。请开发者注意该项资源的计费方式。

常见问题

小程序部署

小程序的部署需要单独提审,安装完本扩展应用后,需要参考 构建/发布 Discuz! Q 小程序与 H5 前端 (opens new window)进行构建发布小程序端的代码。

公众号白名单 IP 配置

公众号登录开通时,需要将服务的 IP 添加到公众号的 IP 白名单中,详情请参见 第三方登录设置 (opens new window)文档。

  1. 在扩展应用详情页 API 和资源模块中,单击云托管的服务详情。
  1. 单击服务配置,查看服务的出口 NAT IP。

版本升级

每次部署更新 (opens new window)都会拉取最新的 Discuz! Q 版本镜像进行安装。

复用已有的 CynosDB 集群

本应用会选取当前环境所处地域,并且在同一个 vpc 下,集群名为 DiscuzCynosDB 的数据库实例。如果不存在,则会创建新的集群。

如果希望复用已有 CynosDB 集群,可参考如下步骤。CynosDB 新用户 10 元可购 1C1G 半年使用时长(opens new window)

  1. 查看 CynosDB 所在的私有网络,并且将集群名更改为 DiscuzCynosDB。
  1. 创建一个新的按量计费环境,并且开通云托管,选择自定义配置,勾选 CynosDB 所在的私有网络,默认请勾选所有子网
  1. 回到扩展应用页面安装 Discuz!Q

配置到其他已有 MySQL 数据库

注:该操作会发起重新安装,数据库里 dabatase 为 discuzq 的库将会删除重建,请安装后,再将之前的数据导入。

  1. 安装 Discuz!Q 后,跳到云托管的 webshell(opens new window)
  2. 删除 lock 锁定文件 rm /var/lib/discuz/.clusterlock /var/lib/discuz/storage/install.lock,以发起重装。
  3. 点击编辑配置并重新部署 (opens new window),更改对应的环境变量。注意需要在同一个 vpc 下,否则需要提供外网的 IP。
  1. 如果需要导入原先的数据,请将 /var/lib/discuz/config/config.php 中的密钥字段。'key' => 'base64:q94WREK6/c8WTTb DeOQjmzyzQgOA5CmVpNfLQWK8kU=',该密钥用于注册账号的密码数据加密。可使用 nano 编辑器 (opens new window)进行编辑。

迁移已有的 Discuz! Q 服务

注:原先如果是连接本地的 MySQL,建议将数据导出,再登录 CynosDB for MySQL 的数据管理后台 (opens new window)进行数据导入。在原先服务器内,更新 config/config.php 配置文件中的数据库连接信息,确认迁移无误后,再进行以下操作。

  1. 登录到已有的服务器后,进入 Discuz! Q 应用部署的根目录,例如 cd /www/wwwroot/discuz
  2. 打包 Discuz! Q 持久化的目录, tar -cf public/discuz.tar.gz config storage。如果提示没有权限,请切换为 root 角色。输入 su 后,填写密码后,便切换到 root 角色,再执行该命令
  3. 登录云托管容器的 webshell,进入到 CFS 挂载的持久化目录 cd /var/lib/discuz
  4. 将压缩包下载到容器内curl http://119.29.146.208/discuz.tar.gz(需要将 IP 替换为实际的服务器 IP 地址)
  5. 解压 tar -xvf discuz.tar.gz,完成持久化数据的迁移。请确定数据库配置是可以连接的。

第三方登录微信鉴权如何往网站根目录写文件

  • 首先我们需要将校验文件下载下来,丢到云存储(设置共有读)或者静态网站托管里面,然后复制下载、访问链接。(下面curl命令需要用到)
  • 进入云托管对应的服务,找到实例,进入webshell管理页(命令行)。
  • 输入如下命令
代码语言:javascript复制
cd /var/www/discuz/public
//这一句是打开网站根目录地址

curl https://www.baidu.com
//URL地址需要修改成第一步我们上传到云存储或者静态网站托管的文件下载地址
  • 在微信控制台填写校验域名的时候,务必填写网站访问路径而非域名(如果服务的触发路径为/则直接填写域名)

其他

程序配置信息

您可以通过以下配置参数:

  • 环境 ID:选择需要部署的环境,在哪个环境下使用。
  • 管理员用户名:Discuz! Q 后台管理系统的管理员用户名,默认为 admin。
  • 管理员密码:Discuz! Q 后台管理系统的管理员密码,第一次安装时,会设置并加密存储在数据库内,之后变更请前往管理系统的用户管理面板重置密码,详情请参见 用户管理 (opens new window)。
  • 数据库用户名:默认为 root,当前不可修改。
  • 数据库密码:root 账号的密码,初次安装时设置后将作为初始化的密码创建 CynosDB。后续修改密码请前往 CynosDB 控制台的账号管理页面,修改密码后,请同步修改此处的密码,以保证数据库的正常使用。

计费

此能力使用云开发与其他腾讯云服务,可能会产生相关费用。云开发与云上其他资源分开计费,您可以在 费用中心 (opens new window)查看具体信息。

  1. 云托管(产品定价 (opens new window)及 使用明细 (opens new window))。
  1. 静态网站托管(产品定价 (opens new window)及 使用明细 (opens new window))。
  2. 文件存储(Cloud File Storage,CFS)(产品定价 (opens new window)及 使用明细 (opens new window))。
  1. 云数据库 CynosDB for MySQL(产品定价 (opens new window)及 使用明细 (opens new window))。

0 人点赞