最近,发现字节内部的轻服务(轻服务 - 先于时代的云服务 (qingfuwu.cn))已经对外放开测试,于是尝试了一下,果然整个开发部署流程如丝般顺滑。因此写了这篇小文,记录一下使用的大致流程。
注册与认证
由于通过轻服务可以在其提供的域名下快速建站,实际上相当于帮用户跳过了网站备案的过程,因此在注册后使用前需要进行实名认证。实名信息输入后,邮件通知的是 3 天审核完毕,但实际提交后,大概 1 分钟左右的时间就给我认证通过了,可以说非常迅速了~
使用云函数快速搭建 Server 服务
在搭建 Web 站点之前,我们先得准备几个 API 服务,轻服务实际支持云工程和云函数两种方式进行 Server 服务的搭建。云工程可以通过 Koa 或者是 Express 框架搭建,同时也
为了方便,我们选用了云函数进行搭建,写了一个非常简单的 greeting 服务,请求方输入名称,服务会返回 “hello ${name}” 打招呼的字段,代码如下:
代码编写完成后,点击上线,然后复制调用地址到 Postman 中进行接口测试:
可以看到,刚部署的云函数服务能够根据输入的名字返回正确的 greeting 字段,部署成功!
使用站点托管上线 Web 应用
前端 Web 应用选择使用 React 开发,对 React 使用不太熟练的同学可以移步 React 的官方教程:创建新的 React 应用 – React (reactjs.org)。
通过 create-react-app 创建完 React 项目后,安装 axios
和 antd
包,并且对 App.js
文件中的主代码进行了部分修改,添加了和服务端交互的逻辑:
function App() { const [name, setName] = useState(''); const [greeting, setGreeting] = useState(''); function onInputChange(e) { setName(e.target.value); } /** 发送请求获取 greeting 结果 */ function onGreeting() { axios.post('https://qcox9g.fn.thelarkcloud.com/greeting', { name }).then(res => setGreeting(res.data && res.data.greeting)); } return ( <div className="App"> <header className="App-header"> <div className="greeting aread"> <p> 给下面的人打招呼 </p> <div className="action"> <Input onChange={onInputChange} /> <Button onClick={onGreeting} disabled={!name}>打招呼</Button> </div> <div className="response"> {`Greeting from server: ${greeting}`} </div> </div> </header> </div> );}
本地测试无误后,运行 yarn build
命令进行打包。如果没有对配置进行修改的话,打包完成后,在根目录下应该会出现 build 文件夹,这个文件夹内就是打包产物。将 build 文件夹进行 zip 压缩,然后进入到轻服务页面,进入到“页面托管”页面,并且选中压缩后的 zip 文件直接上传即可~
上传成功后,Web 页面即部署成功,直接通过弹窗提供的链接即可访问页面:
总结:
到这里基本流程差不多就结束了,但是其实很多步骤都有更多可以探索的空间,比如在进行稍大工程的开发时,通过 git + 云工程 + 自动化脚本的形式会更方便团队进行协作与代码管理。
总的来说,轻服务确实给一些轻量级的服务,例如企业官网,小型博客等提供了一个更加省心,省钱的方案~