写点什么

我的 Serverless 实战—玩转腾讯云 Wordpress

用户头像
liuzhen007
关注
发布于: 2021 年 05 月 16 日

目录

前言

正文

一、登陆并开通服务

二、创建应用

三、遭遇报错并解决

四、访问应用服务

五、发布第一篇文章

六、浏览站点及主题修改

结尾


前言

Serverless,即无服务器架构,是一种新的服务器架构形式。无服务器架构是一种按需提供后端服务的方式。无服务器提供程序允许用户编写和部署代码,而不必担心底层基础结构。无服务器供应商会根据提供的后端服务计算对应的费用,而不必保留和支付固定数量的带宽或服务器数量,因为该服务是自动扩展的。值得注意的是,尽管被称为无服务器,但仍然需要使用物理服务器,但开发人员不需要了解它们,甚至不用关心它们的存在。目前,很多公司都在往 Serverless 这个方向上发力,Serverless 已经成为一种非常热门的技术。

正文

云计算的出现改变了很多传统的服务器架构形式,衍生出了很多改变传统 IT 架构和运维方式的新技术,比如虚拟机、容器、微服务。但是,无论这些技术应用在哪些场景中,降低成本、提升效率是云服务永恒的主题。特别是 Serverless 技术的出现,在降低成本方面,服务器架构形式向前迈出了重大的一步。



像其他技术一样,在 Serverless 技术普及的过程中,也会遇到各种各样的问题,踩坑和试错是不能避免的。

今天,我就结合自己在腾讯云上使用 Serverless 服务的经历,来说说过程中遇到的各种问题以及如何使用 Wordpress 搭建自己的第一个内容管理系统网站。

一、登陆并开通服务

首先,注册腾讯云账户,登陆后选择 Serverless WordPress 建站。



注册地址:https://cloud.tencent.com/

腾讯云的 Wordpress 就是一个基于 Serverless 架构的建站工具服务。

它具备四个非常明显的优势:

1. 快速创建服务;

2. 按量计费,节约成本;

3. 支持 WordPress 原生框架;

4. 能够动态弹性伸缩。


二、创建应用

进入页面后,选择开通 Serverless 服务,我们就可以进行应用的创建了。

创建新应用的方式有两种,一种是应用模板创建,一种是导入已有的项目。因为第一次使用 Serverless 服务,所以,我们选择第一种方式创建应用服务。

接下来就是选择模板,模板支持很多种,比如 Next.js 框架、Wordpress 框架、Express 框架、Flask 框架、SpringBoot 框架、Laravel 框架等。我们直接选择 Wordpress 框架,然后点击“下一步”。

相应的界面如下图所示:



进入下一个页面,这个时候需要填写应用的名称,注意应用名只能由小写字母、数字和分隔符组成。我这里填写的是自己的微信号 lzandlly(😝),开发环境有开发模式(dev)、测试模式(test)、beta 模式,我们选择开发模式。然后,点击“完成”按钮。

相应的界面如下图所示:



这个时候,应用服务开始创建,并且在部署日志中可以看到,显示“加载中...”的信息。

相应的界面如下图所示:


三、遭遇报错并解决

应用服务在加载过程中,会输出如下信息,表示服务正在创建:

Downloading code

Initializing node.js environment

Installing plugins

Processing serverless config files

... ...

但是,服务创建的过程并不顺利,接下来遇到报错,具体日志信息如下:

Downloading codeInitializing node.js environmentInstalling pluginsProcessing serverless config filesDeploying serverless project[2021-04-26 22:24:46] + serverless deploy --debug --force[2021-04-26 22:24:48] 正在初始化...[2021-04-26 22:24:48] Action: "deploy" - Stage: "dev" - App: "lzandlly" - Instance: "wordpress-Rrj6p3a92"[2021-04-26 22:24:48] 准备中...[2021-04-26 22:24:58] 上传中...[2021-04-26 22:25:00] 部署中...[2021-04-26 22:25:02] Deploying wordpress Application (eoucfit)[2021-04-26 22:25:03] Creating default vpc[2021-04-26 22:25:04] Use default VPC, vpcId: vpc-ch3csih5, subnetId: subnet-jlhh488q[2021-04-26 22:25:04] Creating CFS wp-cfs-eoucfit[2021-04-26 22:25:04] Start create CynosDB cluster[2021-04-26 22:25:04] [2021-04-26 22:25:04]  Error: The provided credentials could not be validated. Please check your signature is correct. (reqId: 79584f1f-f96c-4839-89d1-ffd133d69a30)[2021-04-26 22:25:04]     at Object.<anonymous> (/var/user/node_modules/tencent-component-toolkit/lib/utils/api.js:52:27)[2021-04-26 22:25:04]     at Generator.next (<anonymous>)[2021-04-26 22:25:04]     at fulfilled (/var/user/node_modules/tencent-component-toolkit/lib/utils/api.js:5:58)[2021-04-26 22:25:04]     at process._tickCallback (internal/process/next_tick.js:68:7)[2021-04-26 22:25:04] [2021-04-26 22:25:04] 17s › wordpress-Rrj6p3a92 › The provided credentials could not be validated. Please check your signature is correct. (reqId: 79584f1f-f96c-4839-89d1-ffd133d69a30) [2021-04-26 22:25:04] [2021-04-26 22:25:04]   帮助文档: https://cloud.tencent.com/document/product/1154/39270 [2021-04-26 22:25:04]   BUG提交: https://github.com/serverless/serverless-tencent/issues [2021-04-26 22:25:04]   问答社区: https://github.com/serverless/serverless-tencent/discussions [2021-04-26 22:25:04] [2021-04-26 22:25:04] [2021-04-26 22:25:19] script returned exit code 1
复制代码


通过日志,我们可以看出,错误发生在创建 CynosDB 数据库集群之后,错误的原因大致是因为无法验证提供的凭据的有效性,要求检查提供的签名是否正确。 

于是,自己去官方的帮助文档(https://cloud.tencent.com/document/product/1154/39270)和问答社区(https://github.com/serverless/serverless-tencent/discussions)寻找答案,然而,也一无所获。

报错截图:



并且在应用服务的预览页显示的应用状态也是“异常”,具体如下图所示:



就在自己一筹莫展之际,灵光乍现,感觉灯泡都亮了,先注销应用,然后重新创建,这个时候,奇迹发生了。。。



此时,部署日志窗口输出如下信息,预示着应用服务创建成功了:

Downloading codeInitializing node.js environmentInstalling pluginsProcessing serverless config filesDeploying serverless projectWarming up serverless project[2021-04-26 22:40:22] + serverless deploy --debug --force[2021-04-26 22:40:23] 正在初始化...[2021-04-26 22:40:23] Action: "deploy" - Stage: "dev" - App: "lzandlly" - Instance: "wordpress-Qm_Oy9JNo"[2021-04-26 22:40:24] 准备中...[2021-04-26 22:40:33] 上传中...[2021-04-26 22:40:35] 部署中...[2021-04-26 22:40:37] Deploying wordpress Application (csqy88o)[2021-04-26 22:40:38] Use default VPC, vpcId: vpc-ch3csih5, subnetId: subnet-jlhh488q[2021-04-26 22:40:38] Creating CFS wp-cfs-csqy88o[2021-04-26 22:40:38] Start create CynosDB cluster[2021-04-26 22:40:38] Creating CynosDB cluster id: cynosdbmysql-mj360541[2021-04-26 22:42:14] region:       ap-guangzhou[2021-04-26 22:42:14] zone:         ap-guangzhou-4[2021-04-26 22:42:14] vpc: [2021-04-26 22:42:14]   region:     ap-guangzhou[2021-04-26 22:42:14]   zone:       ap-guangzhou-4[2021-04-26 22:42:14]   vpcId:      vpc-ch3csih5[2021-04-26 22:42:14]   vpcName:    Default-VPC[2021-04-26 22:42:14]   subnetId:   subnet-jlhh488q[2021-04-26 22:42:14]   subnetName: Default-Subnet[2021-04-26 22:42:14]   isDefault:  true[2021-04-26 22:42:14] cfs: [2021-04-26 22:42:14]   region:       ap-guangzhou[2021-04-26 22:42:14]   pGroupId:     pgroupbasic[2021-04-26 22:42:14]   netInterface: VPC[2021-04-26 22:42:14]   protocol:     NFS[2021-04-26 22:42:14]   storageType:  SD[2021-04-26 22:42:14]   name:         wp-cfs-csqy88o[2021-04-26 22:42:14]   cfsId:        cfs-o8le06an[2021-04-26 22:42:14]   vpc: [2021-04-26 22:42:14]     vpcId:    vpc-ch3csih5[2021-04-26 22:42:14]     subnetId: subnet-jlhh488q[2021-04-26 22:42:14] db: [2021-04-26 22:42:14]   dbMode:        SERVERLESS[2021-04-26 22:42:14]   region:        ap-guangzhou[2021-04-26 22:42:14]   zone:          ap-guangzhou-4[2021-04-26 22:42:14]   vpcConfig: [2021-04-26 22:42:14]     vpcId:    vpc-ch3csih5[2021-04-26 22:42:14]     subnetId: subnet-jlhh488q[2021-04-26 22:42:14]   instanceCount: 1[2021-04-26 22:42:14]   minCpu:        0.25[2021-04-26 22:42:14]   maxCpu:        0.5[2021-04-26 22:42:14]   clusterId:     cynosdbmysql-mj360541[2021-04-26 22:42:14]   adminPassword: B!!Bd31%[2021-04-26 22:42:14]   connection: [2021-04-26 22:42:14]     ip:   172.16.0.16[2021-04-26 22:42:14]     port: 3306[2021-04-26 22:42:14]   instances: [2021-04-26 22:42:14]     - [2021-04-26 22:42:14]       id:     cynosdbmysql-ins-6mlh82z8[2021-04-26 22:42:14]       name:   cynosdbmysql-ins-6mlh82z8[2021-04-26 22:42:14]       role:   master[2021-04-26 22:42:14]       type:   rw[2021-04-26 22:42:14]       status: running[2021-04-26 22:42:14] apigw: [2021-04-26 22:42:14]   created:     true[2021-04-26 22:42:14]   url:         https://service-k39z6970-1256520856.gz.apigw.tencentcs.com/release/[2021-04-26 22:42:14]   id:          service-k39z6970[2021-04-26 22:42:14]   domain:      service-k39z6970-1256520856.gz.apigw.tencentcs.com[2021-04-26 22:42:14]   environment: release[2021-04-26 22:42:14]   apis: [2021-04-26 22:42:14]     - [2021-04-26 22:42:14]       path:            /[2021-04-26 22:42:14]       method:          ANY[2021-04-26 22:42:14]       apiName:         wp_api[2021-04-26 22:42:14]       created:         true[2021-04-26 22:42:14]       authType:        NONE[2021-04-26 22:42:14]       businessType:    NORMAL[2021-04-26 22:42:14]       isBase64Encoded: true[2021-04-26 22:42:14]       apiId:           api-4mt4s31q[2021-04-26 22:42:14]       internalDomain:  [2021-04-26 22:42:14] layer: [2021-04-26 22:42:14]   region:      ap-guangzhou[2021-04-26 22:42:14]   name:        wp-layer-csqy88o[2021-04-26 22:42:14]   bucket:      wordpress-serverless-code-ap-guangzhou[2021-04-26 22:42:14]   object:      wp-layer-csqy88o.zip[2021-04-26 22:42:14]   description: Created by Serverless Component[2021-04-26 22:42:14]   runtimes: [2021-04-26 22:42:14]     - CustomRuntime[2021-04-26 22:42:14]   version:     1[2021-04-26 22:42:14] wpInitFaas: [2021-04-26 22:42:14]   name:       wp-init-csqy88o[2021-04-26 22:42:14]   runtime:    Nodejs12.16[2021-04-26 22:42:14]   namespace:  default[2021-04-26 22:42:14]   memorySize: 128[2021-04-26 22:42:14] wpServerFaas: [2021-04-26 22:42:14]   name:       wp-server-csqy88o[2021-04-26 22:42:14]   runtime:    CustomRuntime[2021-04-26 22:42:14]   namespace:  default[2021-04-26 22:42:14]   memorySize: 1024[2021-04-26 22:42:14]   layers: [2021-04-26 22:42:14]     - [2021-04-26 22:42:14]       name:    wp-layer-csqy88o[2021-04-26 22:42:14]       version: 1[2021-04-26 22:42:14] 应用控制台: https://serverless.cloud.tencent.com/apps/lzandlly/wordpress-Qm_Oy9JNo/dev[2021-04-26 22:42:14] 111s › wordpress-Qm_Oy9JNo › 执行成功[2021-04-26 22:42:14] [2021-04-26 22:42:14] 
复制代码


四、访问应用服务

应用创建成功后,对应的服务状态会显示“正常”,这个时候操作选项中,可以选择“访问应用”。



点击对应的按钮后,我们来到如下界面:



此时,需要填写对应的站点标题,后台管理账户的用户名和密码,最后还要输入电子邮箱。注意:上述信息可以临时简单的填写一些内容,后期我们还可以修改,所以,不用担心后续修改的问题,不用在此时冥思苦想太久。所填信息简单就好,但是注意密码还是复杂一些比较好。

填写完信息,核对无误后,点击左下角的“安装”按钮,会跳到如下界面,表示 WordPress 安装成功。



点击“登录”按钮,跳转到登录界面。



输入之前填写的用户名和密码后,我们进入系统管理后台,其主界面如下图所示。



其中,仪表盘包含了站点的整体状态展示,系统左侧的导航栏也提供了非常基础的站点功能,包括了文章、媒体、页面、评论、外观、插件、用户、工具、设置等内容选项。

五、发布第一篇文章

接下来,我们体验一下 Wordpress 的文档编辑器,怎么说呢?预览页字体大得有些雷人,感觉非常的山寨(原谅我的直白,有啥说啥哈)。

编辑器功能还算说得过去,基本上能够满足日常写文章的要求。

下图是我编辑的一篇测试文档:



文章的内容非常简单,主要是为了测试一些基础的编辑功能,比如字体加粗、超链接、代码块等。完成后,点击右上角的“发布”按钮,我们再回到站点首页,就可以看到自己新发布的那篇文章了。

六、浏览站点及主题修改

发布的文章的整体展示效果,如下图所示:



​ 当然,感觉页面大得突兀感觉界面丑也没有关系,我们可以切换主题,比如:



说真的,感觉上述主题字体都大得非常有共性,晕~~~

结尾

从整体感觉上来说,腾讯云的 Wordpress 服务在易用性方面还是拿得出手的,即使是没有开发经验的小白也可以非常轻松的掌握其开通、使用、配置等操作。另外,很多 CDN 方案也已经采取了 Serverless 服务架构,在流媒体服务器的调度过程中实现了自动伸缩。个人认为,Serverless 技术将会是服务器架构未来发展的一个趋势,让我们拭目以待吧。

发布于: 2021 年 05 月 16 日阅读数: 64
用户头像

liuzhen007

关注

敲代码,搞开发。 2021.05.01 加入

本人深耕音视频技术,走全栈路线,前后端通吃,兼顾各端与流媒体服务器。 博客主页地址:https://liuzhen.blog.csdn.net 微信公众号:玩转音视频 欢迎交流学习!

评论

发布
暂无评论
我的Serverless实战—玩转腾讯云Wordpress