# 9、请求多服务空间
# 前端请求多服务空间
# 方式一
# 请求支付宝云空间
const myCloud = uniCloud.init({
provider: 'alipay', // 支付宝云
spaceId: 'env-xxxxxx', // 服务空间id 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceId参数
spaceAppId: "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceAppId参数
accessKey: "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应AK参数
secretKey: "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SK参数
// endpoint: "" // 选填 api网关地址,需要海外加速时使用,仅阿里云和支付宝云支持此参数
});
vk.callFunction({
url: 'template/db_api/pub/count',
title: '请求中...',
uniCloud: myCloud,
success: (data) => {
console.log(data);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
# 请求阿里云空间
const myCloud = uniCloud.init({
provider: 'aliyun', // 阿里云
spaceId: 'mp-xxxxxx', // 服务空间id 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceId参数
clientSecret: '', // 阿里云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应ClientSecret参数
// endpoint: "", // 选填 api网关地址,需要海外加速时使用,仅阿里云和支付宝云支持此参数
});
vk.callFunction({
url: 'template/db_api/pub/count',
title: '请求中...',
uniCloud: myCloud,
success: (data) => {
console.log(data);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
# 请求腾讯云空间
const myCloud = uniCloud.init({
provider: 'tencent', // 腾讯云
spaceId: 'tcb-xxxxxx', // 服务空间id 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceId参数
});
vk.callFunction({
url: 'template/db_api/pub/count',
title: '请求中...',
uniCloud: myCloud,
success: (data) => {
console.log(data);
}
});
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
# 方式二
方式二需要 vk-unicloud
核心库版本 >= 2.8.1
在 app.config.js
中新增配置 uniCloud
属性,如下
{
"uniCloud": {
// 自定义默认环境(一般无需配置,除非你知道这么配置带来的意义)
"envs": {
// 当有设置 default 的环境时,不传env,会自动用此环境调用云函数。
"default":{
"provider": "", // 通用参数 支付宝云:alipay 阿里云:aliyun 腾讯云:tencent
"spaceId": "", // 通用参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceId参数
"clientSecret": "", // 阿里云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应ClientSecret参数
"spaceAppId": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceAppId参数
"accessKey": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应AK参数
"secretKey": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SK参数
"endpoint": "" // 选填 api网关地址,需要海外加速时使用,仅阿里云和支付宝云支持此参数
},
// a环境
"a":{
"provider": "", // 通用参数 支付宝云:alipay 阿里云:aliyun 腾讯云:tencent
"spaceId": "", // 通用参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceId参数
"clientSecret": "", // 阿里云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应ClientSecret参数
"spaceAppId": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceAppId参数
"accessKey": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应AK参数
"secretKey": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SK参数
"endpoint": "" // 选填 api网关地址,需要海外加速时使用,仅阿里云和支付宝云支持此参数
},
// b环境
"b":{
"provider": "", // 通用参数 支付宝云:alipay 阿里云:aliyun 腾讯云:tencent
"spaceId": "", // 通用参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceId参数
"clientSecret": "", // 阿里云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应ClientSecret参数
"spaceAppId": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SpaceAppId参数
"accessKey": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应AK参数
"secretKey": "", // 支付宝云专属参数 从 https://unicloud.dcloud.net.cn/home 获取 对应SK参数
"endpoint": "" // 选填 api网关地址,需要海外加速时使用,仅阿里云和支付宝云支持此参数
}
}
}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
前端调用
使用 default 环境调用云函数(如果没有配置 default 环境,则使用项目绑定的云环境调用云函数)
vk.callFunction({
url: '',
title: '请求中...',
data: {
},
success: (data) => {
}
});
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
使用 a 环境调用云函数
vk.callFunction({
url: '',
title: '请求中...',
env: 'a', // 使用a环境调用云函数
data: {
},
success: (data) => {
}
});
1
2
3
4
5
6
7
8
9
10
11
2
3
4
5
6
7
8
9
10
11
使用 b 环境调用云函数
// 使用 b 环境调用云函数
vk.callFunction({
url: '',
title: '请求中...',
env: 'b', // 使用b环境调用云函数
data: {
},
success: (data) => {
}
});
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
当有设置 default
的环境时,不传env,会自动用此环境调用云函数。
vk.callFunction
参数说明:点击查看 (opens new window)
# uniCloud.init 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
provider | String | 是 | - | alipay、aliyun、tencent |
spaceId | String | 是 | - | 服务空间ID,注意是服务空间ID,不是服务空间名称 |
clientSecret | String | 是 | - | 仅阿里云支持,可以在uniCloud控制台 (opens new window)服务空间列表中查看 |
accessKey | String | 是 | - | 仅支付宝云支持, 可以在uniCloud控制台 (opens new window)服务空间详情中查看 |
secretKey | String | 是 | - | 仅支付宝云支持, 可以在uniCloud控制台 (opens new window)服务空间详情中查看 |
spaceAppId | String | 是 | - | 仅支付宝云支持, 可以在uniCloud控制台 (opens new window)服务空间详情中查看 |
endpoint | String | 否 | 阿里云:https://api.next.bspapp.com 支付宝云:https://{spaceId}.api-hz.cloudbasefunction.cn | 服务空间地址,仅阿里云与支付宝云支持。 |
# 云函数端请求多服务空间
# 方式一
云函数请求另外一个服务空间的数据库
目前仅限腾讯云支持
const myDB = uniCloud.database({
provider: 'tencent', // 目前只支持tencent
spaceId: 'xxxx-yyy'
})
res = await vk.baseDao.select({
db: myDB,
dbName: "vk-test",
pageIndex: 1,
pageSize: 100,
whereJson: {
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
# uniCloud.database 参数说明
参数名 | 类型 | 必填 | 默认值 | 说明 |
---|---|---|---|---|
provider | String | 是 | - | 目前只能是 tencent |
spaceId | String | 是 | - | 服务空间ID,注意是服务空间ID,不是服务空间名称 |
# 方式二
云函数请求另外一个服务空间的云函数
目前仅限腾讯云支持
const myCloud = uniCloud.init({
provider: 'tencent', // 目前只支持tencent
spaceId: 'xxxx-yyy'
})
//通过 myCloud 实例调用API
myCloud.callFunction({
name: "router", // 大云函数名称
data: {
$url: "云函数路由的路径",
data: {
// 请求参数
}
}
});
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14