最佳实践

函数部署

最近更新时间:2021-01-28 17:59:20

环境准备

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

  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',
    })
    }
  6. 判断是否需要安装第三方库。
    • 是,使用 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"
      }
      }
    • 否,请执行下一步。
  7. 右键单击新建的 Nodejs 云函数(即 test 函数),选择 “上传并部署(云端安装依赖)”,将修改后的代码同步到云端。
  8. 重复执行 步骤4,新建一个 Nodejs 云函数,并将该云函数命名为 sendemail。
  9. 在 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
    }
    注意

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

  10. 使用 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"
    }
    }
  11. 右键单击 sendemail 函数,选择 “上传并部署(云端安装依赖)”,将修改后的代码同步到云端。
  12. 切换至【云开发控制台】,选择 “云函数”,查看新创建的函数是否显示在列表中。如下图所示,即表示 test 函数和 sendemail 函数已经在云端部署成功。
目录