场景简介
本实验将基于函数计算服务搭建一个Hexo博客。使用Serverless Devs命令行工具可以将很多框架、应用、案例一键部署到函数计算平台中。
费用说明
本实验预计1个小时产生费用0.3元。如果您调整了资源规格、使用时长,或执行了本方案以外的操作,可能导致费用发生变化,请以控制台显示的实际价格和最终账单为准。
背景知识
本场景主要涉及以下云产品和服务:
函数计算FC
函数计算是事件驱动的全托管计算服务。使用函数计算,您无需采购与管理服务器等基础设施,只需编写并上传代码。函数计算为您准备好计算资源,弹性地可靠地运行任务,并提供日志查询、性能监控和报警等功能。函数计算帮助您无需管理服务器(Serverless),仅专注于函数代码就能快速搭建应用。函数计算能够弹性地伸缩,您只需要按使用量付费。
云服务器ECS
云服务器(Elastic Compute Service,简称ECS)是阿里云提供的性能卓越、稳定可靠、弹性扩展的IaaS(Infrastructure as a Service)级别云计算服务。一台云服务器ECS实例等同于一台虚拟服务器,内含CPU、内存、操作系统、网络配置、磁盘等基础的组件。云服务器ECS免去了您采购IT硬件的前期准备,让您像使用水、电、天然气等公共资源一样便捷、高效地使用服务器,实现计算资源的即开即用和弹性伸缩。阿里云ECS持续提供创新型服务器,解决多种业务需求,助力您的业务发展。
Serverless Devs开发者工具
Serverless Devs是一个组件化与插件化的Serverless开发者平台,开发者可以在平台中可插拔式的使用不同Serverless的服务和框架,同时可参与组件和插件的开发。无论是工业级的Serverless服务,还是各类开源的Serverless框架,Serverless Devs都可友好支持。开发者无需对市面上每一款Serverless工具进行研究和学习,只需通过Serverless Devs,就可以简单、快捷的“上手”主流Serverless服务和框架。
创建实验资源
重要
首次开通函数计算的用户可以领取免费试用额度进行体验,领取方式请查看下一小节内容。
在实验页面,勾选我已阅读并同意《阿里云云起实践平台服务协议》和我已授权阿里云云起实践平台创建、读取及释放实操相关资源后,单击开始实操。
创建资源需要5分钟左右的时间,请您耐心等待。
在云产品资源列表,您可以查看本场景涉及的云产品资源信息。

首次开通函数计算用户,可先领取免费额度
前往函数计算控制台。

在推荐您创建 AliyunFcDefaultRole默认角色对话框中,单击创建。

在角色快捷创建页面,单击同意授权。

在实验操作面板顶部,单击
图标打开新的标签页,然后在地址栏中输入如下地址并回车,访问免费试用页面。
https://free.aliyun.com/?spm=a2c6h.29426672.J_5391097900.2.5965729bb9DtAC&productCode=fc

在免费试用页面,找到函数计算FC卡片,单击立即试用。

在函数计算FC面板,勾选服务协议,单击立即试用。
说明
函数计算为首次开通服务的用户提供相应的试用额度,阿里云账户与RAM用户共享此试用额度。试用额度以月为周期,连续提供12个周期,每个周期超出试用额度的部分均会计入按量付费。

安全设置
资源创建完成后,为了保护您阿里云主账号上资源的安全,请您重置云服务器ECS的登录密码、设置安全组端口。
重置云服务器ECS的登录密码。
在云产品资源列表的ECS云服务器区域,单击管理。

在实例详情页签的基本信息区域,单击重置密码。

在重置实例密码对话框中,设置新密码和确认密码,重置密码的方式选择在线重置密码,配置SSH密码登录策略选择开启,单击确认修改。

返回如下结果,表示ECS实例root用户的登录密码重置成功。

创建阿里云AccessKey
重要
在本实验完成后,若不再使用,建议参考实验手册步骤及时删除阿里云AccessKey。
前往AccessKey管理。
在不建议使用云账号AccessKey对话框,阅读创建主账号AccessKey的风险,如果必须要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。

在AccessKey页面,单击创建AccessKey。

根据界面提示完成安全验证。
在创建云账号AccessKey对话框,再次阅读创建主账号AccessKey的风险及主账号AccessKey使用限制,如果确定要创建主账号AccessKey,则勾选我确认知晓云账号AccessKey安全风险,然后单击继续使用云账号AccessKey。

在创建AccessKey对话框,保存AccessKey ID和AccessKey Secret,然后勾选我已保存好AccessKey Secret,最后单击确定。

安装Serverless Devs命令行工具
在云产品资源列表的ECS云服务器区域,单击远程连接。

在登录实例对话框中,输入用户自定义密码,单击确定。

安装Node.js环境。
执行如下命令,下载Node.js安装包。
wget https://npmmirror.com/mirrors/node/v14.14.0/node-v14.14.0-linux-x64.tar.xz --no-check-certificate
执行 如下命令,解压安装包并重命名。
tar -xvf node-v14.14.0-linux-x64.tar.xz && mv node-v14.14.0-linux-x64/ /usr/local/node
执行如下命令,配置环境变量。
echo "export PATH=$PATH:/usr/local/node/bin" >> /etc/profile
执行如下命令,让环境变量生效。
安装Serverless-Devs工具。
执行如下命令,安装Serverless-Devs工具。
npm --registry=https://registry.npmmirror.com install @serverless-devs/s -g
返回结果如下,表示安装完成。

执行如下命令,查看版本并检查安装是否正确。
返回结果如下,您可以看到Serverless-Devs工具的版本。

配置阿里云账号信息
执行如下命令,配置账号信息。
然后根据提示填写以下信息。
云厂商:选择Alibaba Cloud(alibaba)。

AccessKeyID和AccessKeySecret:请填写您创建的阿里云主账号的AccessKey ID和AccessKey Secret,可以在安全信息管理页面查看阿里云主账号的AccessKey ID和AccessKey Secret。

创建密钥对别名:直接回车,默认default。

(可选)如果显示AccountID auto get failed, please input AccountID manually提示时,您需要手动输入阿里云账号的UID,您可在账户中心查看UID。如果未出现相关提示,可忽略此步骤。


配置成功后,您将会收到Configuration successful的提示信息,如下图所示。

搭建Hexo博客项目
执行以下命令,在当前路径初始化一个Hexo项目。
s init website-hexo -d website-hexo
选择创建应用所在地域,在本实验中选择为cn-shanghai。

设置服务名,直接按回车键,使用默认的服务名。

设置函数名,直接按回车键,使用默认的服务名。

凭据选择,选择default,然后按回车键。

返回结果如下,表示Hexo项目初始化成功。

将Hexo项目部署到函数计算服务上。
执行以下命令,进入项目所在目录。
执行以下命令,部署项目。
返回结果如下,表示项目部署完成,并复制domain后的URL。

在您的本机浏览器地址栏中,粘贴domain后的URL,访问Hexo博客系统。

接下来您可以自行添加一些主题和插件以丰富您的博客系统。