阿里云云开发平台校园合伙人招募 主要提供了 云开发平台 进行 Web 开发的体验,包括以下内容:
认识 Serverless 云开发 (8.3) :学习云开发平台的基本概念和操作、团队协同、应用的开发、部署
云函数 (8.4) :函数的基础概念,架构,调用方式、静态文件的托管方式
开发Web接口 (8.5):学习使用函数开发 Web 接口、多个函数的同时开发,资源复用
服务端渲染 (8.6):学习使用函数接入传统 koa 中间件,构建 Web 应用
数据库调用 (8.7):学习接入数据库,调用数据存储
多媒体托管和支付 (8.10):学习函数的文件多媒体托管和支持能力
一体化方案开发实战 (8.11):学习和前端 ( react / vue ) 代码一起开发的一体化方案
完结撒花 ,点击上面的链接可以回顾这七天的内容哦~
关于 Midway Serverless 的相关介绍,请参考 Day2 的文章
表格存储(Tablestore)是阿里云自研的面向海量结构化数据存储的 Serverless NoSQL 多模型数据库。
今日任务为使用 Midway Serverless OTS 数据库示例模板创建 ToDo List 应用,利用自建的 OTS 数据库,添加一条自己名字的 Todo
登入云开发平台,进入到应用列表,点击 创建新应用
,新建一个 WEB 实验室解决方案的 Midway Serverless OTS数据库示例
。
创建好后,进入 开发部署
。
进入 IDE 后,先在终端执行:
npm i --registry=https://registry.npm.taobao.org
安装 npm 依赖,因为依赖包很多,这里用了淘宝的镜像源,安装会更快。
在终端执行 npm run dev
运行项目,点击生成的链接,可以访问这个页面。
云开发平台暂时提供一个临时测试的 AK 信息以及 OTS 数据库供大家体验,要开发部署自己的应用,需要换成自己的阿里云 AK 信息及 OTS 数据库
默认为读取应用的环境变量,环境变量需要到 应用列表-应用配置
中修改。
环境变量名 | 释义 |
---|---|
MIDWAY_OTS_ACCESSKEY | 阿里云账户 AccessKey ID |
MIDWAY_OTS_SECRET | 阿里云账户 AccessKey Secret |
MIDWAY_OTS_ENDPOINT | 表格存储实例公网访问地址 |
MIDWAY_OTS_INSTANCE | 表格存储实例名称 |
本次任务涉及到 OTS 数据库的使用操作,需要先在 阿里云表格存储 页面开通,开通后在控制台创建实例。其中实例名称用于下面配置中的 MIDWAY_OTS_INSTANCE
。
进入实例管理,在下方数据表列表中点击 创建数据表
,数据表名称填写 list
,表主键填写 id
,完成建表。
在实例管理中,可以获取 表格存储实例公网访问地址
,如下图:
AccessKey ID
与 Secret
的获取可参考下图,或 点击这里直达
AccessKey ID
和 AccessKey Secret
需要保管好,谨防泄露。
填好环境变量后,部署上线即可调用数据库进行 ToDo List 的增删改查。
在日常开发环境,由于环境变量需要部署的时候才能读取,为了方便调试,可以修改 src/apis/config/config.default.ts
文件的代码:
// 接上 ...
exports.tbConfig = {
accessKeyId: '你的 AccessKey ID',
secretAccessKey: '你的 AccessKey Secret',
endpoint: '表格存储实例公网访问地址', // e.g. https://todo-test-list.cn-hangzhou.ots.aliyuncs.com
instancename: '表格存储实例名称' // e.g. todo-test-list
};
这样,执行 npm run dev
也能对 ToDo List 的内容进行增删改查。但是部署上线前记得将上述代码改回以下形式,防止 AccessKey
等敏感信息泄露:
exports.tbConfig = {
accessKeyId: process.env.MIDWAY_OTS_ACCESSKEY,
secretAccessKey: process.env.MIDWAY_OTS_SECRET,
endpoint: process.env.MIDWAY_OTS_ENDPOINT, // e.g. https://todo-test-list.cn-hangzhou.ots.aliyuncs.com
instancename: process.env.MIDWAY_OTS_INSTANCE // e.g. todo-test-list
};
任务中使用的是阿里云 OTS 数据库,在云开发平台上也有 Midway Serverless MySQL数据库示例
的解决方案,内容同样是一个 ToDo List,只不过用的是阿里云关系型数据库 RDS MySQL 版,只需要在数据库中建一张这样的表:
CREATE TABLE `todo` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`todo` varchar(255) NOT NULL,
`status` int(11) NOT NULL,
`gmt_create` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
本次示例项目也是一个 React 与 Midway Serverless 一体化应用,Midway 在 src/apis/index.ts
定义 ToDo List 的功能函数,包括增删改查,以及用于提供静态资源托管能力的已封装的 koa 中间件 StaticFile
。在 src/apis/configuration.ts
中配置了与数据库的连接,而 src/apis/config/config.default.ts
定义了环境变量的配置。下面给出项目主要结构图以便理解:
.
├── f.yml # 函数定义文件
├── package.json # 项目依赖
├── tsconfig.json # tsc 配置文件
└── src
├── ... # React 等相关文件
└── apis
├── index.ts # 函数文件
├── configuration.ts # 装饰器、数据库等配置
└── config
└── config.default.ts # 部署环境变量配置
注意,云开发平台暂时只支持连接阿里云的数据库。
对创造营后续内容感兴趣的朋友们记得 关注我 哦~