函数部署

最近更新时间:2019-06-03 15:45:49

环境准备

在开始部署云函数前,您需要:

  1. 申请获取小程序 AppID
  2. 下载并安装 微信开发者 IDE
  3. 在您的电脑上,安装 Node8.9 或以上运行环境。
  4. 在您的电脑上,安装 npm 工具,关于 npm 详细可参考 npm 官网
  5. 阅读并了解小程序云开发使用的基础信息,详情可参考 微信官网教程

创建小程序项目并部署云函数

  1. 在微信开发者 IDE中,新建一个项目,并填写项目信息。
  2. 在 IDE 的工具栏中,单击【云开发】,申请开通云端环境(即自动生成数据库实例、对象存储桶、云函数运行环境)。
  3. 在 IDE 的代码栏中,右键单击 cloud 目录下的 functions,将 “当前环境” 设置为指定本地函数目录的云端环境。如下图所示:
  4. 右键单击 functions,选择【新建 Nodejs 云函数】,新建 Nodejs 云函数。例如,新建一个名称为 test 的 Nodejs 云函数。
  5. 在新建的 Nodejs 云函数的 index.js 中,编写主函数。例如,将以下代码作为主函数复制至 index.js 中。
const cloud = require('wx-server-sdk')
cloud.init({
  env: 'test-demo-id'   //环境初始化
})
// 云函数入口函数
exports.main = async (event, context) => {
  console.log("Start to test")
  return await cloud.callFunction({
    name:'sendmail',
  })
}
  1. 判断是否需要安装第三方库。
    • 是,使用 npm 工具安装或者在 package.json 中声明。 package.json 声明如下所示:
{
 "name": "test",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
  },
 "author": "",
 "license": "ISC",
 "dependencies": {
 "wx-server-sdk": "latest" 
  }
}
  • 否,请执行下一步。
    1. 右键单击新建的 Nodejs 云函数(即 test 函数),选择 “上传并部署(云端安装依赖)”,将修改后的代码同步到云端。
    2. 重复执行 步骤4,新建一个 Nodejs 云函数,并将该云函数命名为 sendemail。
    3. 在 sendemail 云函数的 index.js 中,编写主函数。例如,将以下代码作为主函数复制至 sendemail 云函数的 index.js 中。
// 云函数入口文件
const nodemailer = require("nodemailer");
var transporter = nodemailer.createTransport({
  service: 'qq',
  port: 465,               // SMTP 端口
  secure: true,            // 使用 SSL
  auth: {
    user: 'xxxx@qq.com',   // 发送邮件的邮箱
    pass: '*******'        // 邮箱密码
  }
});
var mailOptions = {
  from: 'xxxxxxx@qq.com',   // 发件地址
  to: 'xxxxxxxx@qq.com',    // 收件列表
  subject: '测试云函数',      // 标题
  text: '测试云函数'
};
// 云函数入口函数
exports.main = async (event, context) => {
  console.log("Start to sendemail")
  //开始发送邮件
  const info = await transporter.sendMail(mailOptions);
  console.log('Message sent: ' + info.response);
  return info
}

注意:

在该段代码中,需要填写您实际的邮箱地址、密码、想要发送的邮箱地址等信息。

  1. 使用 npm 工具安装或者在 package.json 中声明第三方 “nodemailer” 库。 package.json 声明如下所示:
{
 "name": "sendmail",
 "version": "1.0.0",
 "description": "",
 "main": "index.js",
 "scripts": {
 "test": "echo \"Error: no test specified\" && exit 1"
  },
 "author": "",
 "license": "ISC",
 "dependencies": {
 "wx-server-sdk": "latest",
 "nodemailer":"^4.7.0"  
  }
}
  1. 右键单击 sendemail 函数,选择 “上传并部署(云端安装依赖)”,将修改后的代码同步到云端。
  2. 切换至【云开发控制台】,选择 “云函数”,查看新创建的函数是否显示在列表中。如下图所示,即表示 test 函数和 sendemail 函数已经在云端部署成功。