阿里云七天云开发校园合伙人创造营 Day 2

云开发7天训练营学习计划

在这里插入图片描述

阿里云云开发平台校园合伙人招募 主要提供了 云开发平台 进行 Web 开发的体验,包括以下内容:

完结撒花 🎉 ,点击上面的链接可以回顾这七天的内容哦~

Day 2: 使用 Midway Serverless 创建函数

关于函数

当前的函数,可以当做一个小容器,原来我们要写一个完整的应用来承载能力,现在只需要写中间的逻辑部分,以及考虑输入和输出的数据。

通过绑定平台的触发器,可以承载例如 HTTP,Socket 等流量。

通过平台提供的 BaaS SDK,可以对外调用数据库,Redis 等服务。

通过函数,能提供传统的 HTTP API 服务,结合现有的前端框架(react,vue 等)渲染出一个个美丽的页面,也可以做为一个独立的数据模块,等待被调用(触发),比如常见的文件上传变更,解压等等,也能作为定时任务的逻辑部分,到了指定的时间或者时间间隔被执行。

随着时间的更替,平台的迭代,函数的能力会越来越强,而用户的上手成本,服务器成本则会越来越低。

摘自 Midway Serverless 使用文档

关于 Midway Serverless

在这里插入图片描述

Midway Serverless 是一个用于构建 Node.js 云函数的 Serverless 框架,可以帮您在云原生时代更专注于产品开发,降低维护成本。

Midway 目前已全面转向 TypeScript,所以 TypeScript 是必要的。

更多介绍请查看以下链接。

GitHub 仓库地址直达

Midway Serverless 使用文档

每日任务

今日任务为使用 f create 创建一个标准函数,使用 invoke 返回 hello world 加上名字

在这里插入图片描述

1. 准备开发环境

下面介绍两种开发方式,建议大家选择适合自己的方式进行。

1.1 本地开发

确保在本机安装并配置好 Node.js LTS 版或者最新版

Windows 下打开 cmd 或者 PowerShell,官方推荐使用 Git bash,Mac OS 下用自带的 Terminal,Linux 直接用 命令行

在命令行工具中输入 node -vnpm -v 可以查看 Node 和 npm 的版本(npm 一般已内置于 node 中)

请确保 Node 版本 >10.9


使用命令行执行全局安装 midway 函数开发命令行工具

npm install @midwayjs/faas-cli -g

npm 安装太慢可以换国内的镜像源或者使用 cnpm 替换

安装完成后,全局就拥有了 f 命令,你可以使用 f -h 查看全部命令和参数


1.2 在线开发

本次训练营主打云开发,所以我们来尝试一下使用云开发平台自带的 Codeup 进行开发。

由于线上环境已内置了 npm,省了很多配置环境变量等操作。

进入 Codeup,新建一个代码库。

在这里插入图片描述

进入该代码库,使用 Web IDE 开发。

在这里插入图片描述

在 IDE 界面,点击上方工具栏 Terminal,选择 New Terminal

在这里插入图片描述

在终端里执行安装 midway 函数开发命令行工具:

npm install @midwayjs/faas-cli -g
2. 创建一个标准函数

以下内容两种开发环境通用,主要以本地环境演示

执行命令

f create

将会看到以下脚手架的选择,选择 faas-standard

在这里插入图片描述

接下来输入路径或定义项目名 如 HelloWorld,回车后提示成功创建就可以开始开发了。

在这里插入图片描述

执行 cd HelloWorld 进入函数根目录,先执行 npm i 安装依赖。

3. 开发调试一个函数

IDE 打开函数所在目录,可以看到主要该函数的主要结构

在这里插入图片描述

可以精简为以下核心结构,包含了普通 TypeScript 项目结构:

.
├── f.yml           # 函数定义文件
├── package.json    # 项目依赖
├── src             # 函数源码目录
│   └── index.ts    # 函数文件
└── tsconfig.json   # tsc 配置文件

有关函数定义文件的介绍可以查阅 官方文档

本任务主要对函数文件 index.ts 进行开发。

将文件代码修改为:

import { Func, Inject, Provide } from '@midwayjs/decorator';
import { FaaSContext, FunctionHandler } from '@midwayjs/faas';

@Provide()
@Func('index.handler')
export class IndexService implements FunctionHandler {

  @Inject()
  ctx: FaaSContext;  // context

  async handler() {
    return 'hello world' + ' MicroLOONG'; //修改这里
  }
}

保存后执行 f invoke -f index 调用 index 函数

在这里插入图片描述

也可以执行 npm run dev 或者 f invoke -p,使用浏览器打开 localhost:3000 访问函数调用结果(Codeup 开发不能用 localhost)

在这里插入图片描述

后续可以执行 f deploy 发布到云平台上

任务拓展

Midway Serverless 提供另一亮点功能是提供了与 React、Vue 等前端框架高度集成的云端一体开发方案。

执行 f create,下方的 Examples 提供了一个 faas-covid19 的 demo

进入该 demo 的目录,执行:

npm i
#安装依赖

npm run dev
#运行项目

此时浏览器自动弹出并打开了 localhost:3000 页面,可以看到这是一个全球新冠病毒确诊统计的展示。

在这里插入图片描述

这个示例同样可以直接使用 Day1 介绍的 云开发平台 进行调试开发

在应用列表新建一个 WEB 实验室解决方案 Midway Serverless COVID-19可视化示例(For NodeJS)

便可以开发部署上线了,详细操作可以参考 Day1

在这里插入图片描述

在云开发平台还提供了 Hexo 博客、钢琴、数据库等示例,感兴趣的同学可以尝试一下。

总结

Midway Serverless,提供了和前端一体的开发方案,囊括了社区现有的 React、Vue 等生态,也对整个工具链(Webpack,ice scrips,umi 等)做了定制化方案,对不同的场景,比如博客等也提供了开箱即用的解决方案。

在这里插入图片描述

现阶段,函数即是应用在当前业务中的最小体现,更简单的来说,是在最小规格容器中运行应用部分代码。

Serverless 是未来一段时间的方向,也是前端迈向更高层次的铺路砖。

对创造营后续内容感兴趣的朋友们记得 关注我 哦~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值