微搭 & 云开发
微搭构建在云开发之上。云开发的大部分能力在微搭中都能正常使用,微搭应用的大部分组成部分在云开发中也都能找到对应的载体。
微搭模块 | 云开发载体 |
---|---|
应用(WEB 前端) | 静态托管,按应用 ID 存放在路径 /app-xxxxxxx 中 登录页存放在 /__auth 目录中 |
素材 | 静态托管,存放路径: /resources |
图片/文件上传组件 | 云存储,存放路径:/weda-uploader |
自定义域名 | HTTP 访问服务 |
APIs 自定义代码 | 云函数 发布后函数: lowcode-datasource 测试/体验函数: lowcode-datasource-preview |
数据模型 | 数据库/ MYSQL 发布后数据库: lcap-[数据源ID]-[数据源标识] 开发体验数据库: lcap-[数据源ID]-[数据源标识]-preview MYSQL 云开发无对应载体 |
用户/登录方式 | 用户/登录授权 |
企业工作台/数据管理 | 静态托管,存放路径:/adminportal |
下面会从设计态和运行态介绍在微搭中使用云开发的能力。
设计态
每个微搭环境对应着一个云开发环境,基于微搭模块和云开发的映射关系,进入云开发控制台可以自助进行应用及服务的配置调整,也可以查看 APIs 自定义代码云函数的请求日志,举例来说进入云开发控制台可以进行以下高级操作:
应用(WEB 前端)/ 素材 - 云开发静态托管
- 定制静态托管的缓存策略
- 自定义添加静态文件,如自助添加一些不能通过素材上传的静态文件、校验文件、自定义页面等
- 通过移除应用的文件目录来手动下线某个应用的 web 部分
图片/文件上传文件 - 云开发云存储
- 通过修改云存储配置定制用户上传文件的缓存策略
- 调整用访问权限策略
APIs 自定义代码 - 云开发云函数
- 通过云函数查看 APIs 自定义代码执行日志
- 通过云函数调整 APIs 自定义代码超时时间 (前端获得返回值的最长时长为 60 秒)
- 通过云函数设置 APIs 自定义代码对外请求的固定 IP
- 也可以通过配置云函数 package.json 中的
dependencies
字段来自助增加依赖以便在自定义代码中使用 - 云函数预置并发来提升 APIs 自定义代码性能或者应对某些突发流量
- 自建云函数实现某些自定义能力
数据模型 - 云开发数据库/ MYSQL
- MYSQL 在云开发中无对应载体
- 通过云开发数据库进行数据回档
- 手动添加索引
自定义域名 - 云开发HTTP 访问服务
- 通过 HTTP 访问服务扩展自定义域名访问路由
请谨慎在云开发控制台中修改微搭的环境的资源配置,请确认知道自己操作可能导致的结果!
如何进入微搭环境的云开发控制台?
可以通过两种方式进入微搭环境的云开发控制台:
进入云开发旧版控制台,选择微搭对应的环境进入(环境 ID 前缀为
lowcode-
)。先找到微搭环境的
envId
, 一般可以通过观察微搭控制台或者应用编辑器的envId
参数获取,也可以在应用详情基础设置里获取。然后直接修改该地址中的 envId 参数为你环境的https://console.cloud.tencent.com/tcb/env/overview?envId=lowcode-xxxxxx&rid=4
运行态
在微搭提供的能力之外,云开发更提供了丰富的服务能力。简单来说在微搭的应用前端或者 APIs 自定义代码或者云函数中都可以通过相关云开发 SDK 来扩展微搭的能力。
在应用前端可以通过 $w.cloud.getCloudInstance
方法获取云开发 js-sdk 初始化之后的应用实例。通过该实例调用云开发的各种能力云函数、云存储、数据库(当前模型应用不能在前端直接使用数据库能力)等。
比如在应用前端自定义代码中直接调用自定义云函数:
export default async function ({ event, data }) {
const app = await $w.cloud.getCloudInstance();
// 调用自定义云函数,调用前需要去云开发控制台创建并实现该云函数
// 等同于 $w.cloud.callFunction
const { result } = await app.callFunction({
name: "myFunction",
data: {
key: 1,
},
});
console.log(result);
}
在 APIs 自定义代码中可以通过 context.cloudbase
获取云开发 nodeSDK 引用,context.app
获取实例化的实例,context 文档可参考。
比如在 APIs 自定义代码中同样的可以调用自定义云函数:
module.exports = async function (params, context) {
const { app } = context;
// 调用自定义云函数,调用前需要去云开发控制台创建并实现该云函数
const { result } = await app.callFunction({
name: "myFunction",
data: {
key: 1,
},
});
console.log(result);
};
也可以通过事务、聚合接口实现事务和聚合的能力。总之通过使用云开发 SDK 或者 API 可以将云开发强大的能力扩展到微搭中来,以实现更加丰富的能力。