跳到主要内容

微搭 & 云开发

微搭构建在云开发之上。云开发的大部分能力在微搭中都能正常使用,微搭应用的大部分组成部分在云开发中也都能找到对应的载体。

微搭模块云开发载体
应用(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 访问服务扩展自定义域名访问路由

请谨慎在云开发控制台中修改微搭的环境的资源配置,请确认知道自己操作可能导致的结果!

如何进入微搭环境的云开发控制台?

可以通过两种方式进入微搭环境的云开发控制台:

  1. 进入云开发旧版控制台,选择微搭对应的环境进入(环境 ID 前缀为 lowcode-)。

  2. 先找到微搭环境的 envId, 一般可以通过观察微搭控制台或者应用编辑器的 envId 参数获取,也可以在应用详情基础设置里获取。然后直接修改该地址中的 envId 参数为你环境的 https://console.cloud.tencent.com/tcb/env/overview?envId=lowcode-xxxxxx&rid=4

运行态

在微搭提供的能力之外,云开发更提供了丰富的服务能力。简单来说在微搭的应用前端或者 APIs 自定义代码或者云函数中都可以通过相关云开发 SDK 来扩展微搭的能力。

在应用前端可以通过 $w.cloud.getCloudInstance 方法获取云开发 js-sdk 初始化之后的应用实例。通过该实例调用云开发的各种能力云函数云存储数据库(当前模型应用不能在前端直接使用数据库能力)等。

比如在应用前端自定义代码中直接调用自定义云函数:

index/handler/function1
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 可以将云开发强大的能力扩展到微搭中来,以实现更加丰富的能力。