Skip to main content

Access via SDK/API

For application scenarios that solely use CloudRun as an API server, the CloudRun service can be accessed by exposing SDK/API. Similar to the built-in callContainer method in WeChat Mini Programs, accessing via exposed SDK/API does not require enabling public network access to access the CloudRun service. By accessing the CloudRun service via exposed SDK/API, fine-grained permission control can be implemented based on access_token for service access.

For a web application, secure domain configuration is required first to support CORS cross-domain requests.

JS-SDK Access

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

// Initialize the SDK instance
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);
});

For more information, please refer to the JS-SDK documentation.

Node SDK Access

As in accessing the CloudRun service in Cloud Function:

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)
}

For more information, please refer to the Node SDK documentation.

HTTP API Access

To access the CloudRun service via the CloudRun HTTP API, you need to first obtain an access token (Token), then use this token for API calls.

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 '{}'

To address potential compliance blocking risks, the HTTP API encapsulates both requests and responses:

  • All requests must carry an access token in the format Authorization: Bearer <TOKEN>;
  • For all responses to GET requests, add Content-Disposition: attachment to the response headers;
  • For responses of non-text types (text types include return content where the response header Content-Type has values such as application/json, application/x-www-form-urlencoded, text/plain), add Content-Disposition: attachment to the response headers;
  • Server-sent Event and WebSocket requests are not subject to the above restrictions.