快速开始

最近更新时间:2020-09-22 09:45:10

第 1 步:创建目录和云函数文件

首先创建一个空的文件夹,作为项目的根目录。

然后进入项目根目录,创建 functions 文件夹。

随后在 functions 下创建 hello_world 文件夹,包含 index.jspackage.json 两个文件。

此时目录结构如下:

└── functions
    └── hello_world
        ├── index.js
        └── package.json

index.js 内容如下:

exports.main = async()=> {
 return "Hello World!";
};

package.json 内容如下:

{
  "name": "hello_world",
  "version": "1.0.0",
  "main": "index.js"
}

第 2 步:发布云函数

命令行工具

  1. 安装并登陆 CLI 工具
  2. 项目根目录运行以下命令,并且使用默认配置
    cloudbase functions:deploy hello_world -e <env-id>
    说明:

    命令中的 <env-id> 是开发者的 CloudBase 环境 ID

小程序开发者工具

您需要先下载并安装 小程序开发者工具

如果您是首次在微信小程序中使用云开发,请参考 第一个云开发小程序

在微信小程序中首次使用云函数请参看操作指引 我的第一个云函数

第 3 步:调用云函数

调用云函数有两种方法:

  • 使用云开发 SDK
  • 使用 云接入 提供的 HTTP 服务

使用 SDK 调用云函数

Web

//初始化SDK实例
const tcb = require("tcb-js-sdk");
const app = tcb.init({
  env: "xxxx-yyy"
});
app
  .callFunction({
    // 云函数名称
    name: "hello_world",
    // 传给云函数的参数
    data: {
      a: 1
    }
  })
  .then((res) => {
    console.log(res);
  })
  .catch(error);

小程序

wx.cloud
  .callFunction({
    // 云函数名称
    name: "hello_world",
    // 传给云函数的参数
    data: {
      a: 1,
      b: 2
    }
  })
  .then((res) => {
    console.log(res.result); // 3
  })
  .catch(console.error);

Node.js

const tcb = require("@cloudbase/node-sdk");
const app = tcb.init({
  env: "xxxx-yyy"
});
app
  .callFunction({
    // 云函数名称
    name: "hello_world",
    // 传给云函数的参数
    data: {
      a: 1
    }
  })
  .then((res) => {
    console.log(res);
  })
  .catch(error);

使用云接入 HTTP 调用云函数

执行以下命令创建一条云接入路由,路径为 /hello,指向的云函数为 hello_world

cloudbase service:create -p /hello -f hello_world -e <env-id>

提示:命令中的 <env-id> 是开发者的环境 ID

随后便可以通过 https://<env-id>.service.tcloudbase.com/hello 调用云函数,并获得返回结果。

第 4 步(可选):在云函数内使用 Node.js SDK

首先,我们在 functions/hello_world/ 路径下,执行以下命令,安装 Node.js SDK:

npm install --save @cloudbase/node-sdk

然后把 functions/hello_world/index.js 内容改为:

const cloudbase = require("@cloudbase/node-sdk");
exports.main = function () {
  if (cloudbase) {
    return "Happy Hack With Cloudbase!";
  }
};

然后我们重新部署云函数:

cloudbase functions:deploy hello_world -e <env-id>

然后在云函数的调用结果里,我们便可以看到结果:

app
  .callFunction({
    name: "hello_world"
  })
  .then((res) => {
    console.log(res.result); // 'Happy Hack With Cloudbase!'
  });
目录