跳到主要内容

通过 SDK/API 访问

一些仅把云托管当做 API server 的应用场景,可以通过开放 SDK/API 访问云托管服务。类似微信小程序内置 callContainer 方法,通过开放 SDK/API 也不需要开启公网访问即可访问云托管服务。通过开放 SDK/API 访问云托管服务,可以根据 access_token 对服务访问进行精细话的权限控制

如果是 web 应用,需要先进行安全域名配置 来支持 CORS 跨域。

JS-SDK 访问

import cloudbase from "@cloudbase/js-sdk";

//初始化SDK实例
const app = cloudbase.init({
env: "xxxx-yyy",
});

app
.callContainer({
name: "helloworld",
method: "POST",
path: "/abc",
header: {
"Content-Type": "application/json; charset=utf-8",
},
data: {
key1: "test value 1",
key2: "test value 2",
},
})
.then((res) => {
console.log(res);
});

更多信息请参考 JS-SDK 文档

Node.js SDK 访问

如在云函数中访问云托管服务:

import tcb from '@cloudbase/node-sdk'

exports.main = async (event, context) => {
const { httpContext } = context
const { url, httpMethod } = httpContext
console.log(`[${httpMethod}][${url}]`)

const tcbapp = tcb.init({ context })
const result = await tcbapp.callContainer({
name: 'helloworld',
method: 'POST',
path: '/abc',
data: {
key1: 'test value 1',
key2: 'test value 2'
},
{
timeout: 5000
}
})
console.log(result)
}

更多信息请参考 Node.js SDK 文档

HTTP API 访问

通过云托管 HTTP API 访问云托管服务,您需要先获取访问令牌(Token),然后使用该令牌进行 API 调用。

curl -L 'https://your-envId.api.tcloudbasegateway.com/v1/cloudrun/:name' \
-H 'Content-Type: application/json' \
-H 'Accept: application/json' \
-H 'Authorization: Bearer <TOKEN>' \
-d '{}'

针对可能存在的合规封禁风险,HTTP API 对请求和响应均有所封装,响应的 content-type 受限:

  • 对于所有的 GET 请求返回的响应,响应头添加 Content-Disposition: attachment
  • 对于非文本类型(文本类型包括响应头Content-Type中指示application/jsonapplication/x-www-form-urlencodedtext/plain类型的返回内容)的响应,响应头添加 Content-Disposition: attachment
  • Server-sent Event 和 WebSocket 请求不受到上述限制。