目录
前言
正文
一、登陆并开通服务
二、创建应用
三、遭遇报错并解决
四、访问应用服务
五、发布第一篇文章
六、浏览站点及主题修改
结尾
前言
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 技术将会是服务器架构未来发展的一个趋势,让我们拭目以待吧。
评论