本页
抽奖示例
本文介绍如何在MemFire Cloud控制台快速开发一个简单的抽奖应用。MemFire Cloud为您提供一个简单的抽奖示例,你可以在下载该示例到本地,并通过控制台使用该示例创建函数。创建成功后,您可以测试该函数,查看函数执行的结果。
使用说明
关于以下示例的使用方法,请参见对应代码库的readme.md文件。
前提条件
- 拥有MemFire Cloud账号;
- 创建MemFire Cloud应用开发。
操作步骤
步骤1:准备代码包
准备好抽奖样例,并打包ZIP文件。
抽奖的代码包地址详见:https://github.com/LucaRao/Prize
编写的抽奖样例,只有一个index.js文件,代码如下:
const prizes = ["特等奖", "一等奖", "二等奖", "三等奖", "参与奖"];
exports.handler = (req, resp, context) => {
// const dotenv = require("dotenv");
// dotenv.config();
// const { Client } = require('pg')
// const client = new Client({
// user: process.env.PGUSER,
// host: process.env.PGHOST,
// database: process.env.PGDATABASE,
// password: process.env.PGPASSWORD,
// port: process.env.PGPORT,
// })
// client.connect();
var params = {
path: req.path,
queries: req.queries,
headers: req.headers,
params : req.method,
requestURI : req.url,
clientIP : req.clientIP
}
resp.setHeader('Content-Type', 'application/json');
if(params.params === 'GET' && params.queries.action === 'lottery'){
const randomIndex = Math.floor(Math.random() * prizes.length);
const result = prizes[randomIndex];
resp.send(`恭喜您抽中了${result}!`);
}else{
resp.send('404 Not Found');
}
}
步骤2:创建云函数
1、登录MemFire Cloud控制台,进入我的应用->某应用->云函数页面。
2、在云函数页面,单击新建函数;
3、在创建云函数弹框中,输入函数名称Prize,并上传步骤1中准备好的ZIP代码包,无需配置环境变量,不开启initializer回调,然后单击保存;
- 基础信息:设置函数的基本信息,包括函数名称、请求处理程序。
配置项 说明 函数名 函数名称,必填项;只能包含字母、数字、下划线;不能以数字开头,长度在 1-64 之间;同一应用下的云函数不能重名; 请求处理程序 即函数入口,默认为index.handler;在“运行环境”为 Node.js 时,当前值的格式为 [文件名].[函数名]; - 函数配置:配置函数的代码和运行环境。
配置项 说明 上传代码包 支持ZIP包上传代码;ZIP文件大小不能超过20Mb, 且index.js必须在ZIP文件的根目录下,采用handler函数为入口函数; 运行环境 目前MemFire Cloud云函数仅支持JavaScript语言,支持的运行环境包括:Node.js 12Node.js 14Node.js 16 执行超时时间 设置超时时间。执行超时时间默认为60秒,最长为86400秒。建议您将此值设置为 600 秒。如果函数在这个时间内未能成功执行,函数计算会返回超时错误,请设置大小合适的超时时间,避免函数执行超时。 访问方法 访问方法包括:GET、POST、PUT、DELETE、OPTIONS、HEAD、PATCH 函数描述 函数描述信息; - 环境变量:配置函数运行环境中的环境变量。可以配置多个环境变量,详见:环境变量
- 函数生命周期回调:配置函数实例的生命周期回调,初始化(Initializer)函数;
- 在函数实例启动成功之后,运行请求处理程序(Handler)之前执行;
- 云函数保证在一个实例生命周期内,成功且只成功执行一次Initializer回调;
配置项 说明 Initializer程序入口 在“运行环境”为 Node.js 时,当前值的格式为 [文件名].[函数名];Initializer函数执行入口,默认为index.Initializer; Initializer超时时间 执行 Initializer 回调程序的超时时间,开启Initializer回调时为必填项,默认为3,单位秒。最小1秒,最长5分钟,即300秒;初始化函数超过这个时间后会被终止执行;
步骤3:执行函数
1、在云函数页面,复制Prize函数访问地址URL。
2、打开Postman工具,新建一个请求窗口,粘贴到Postman请求里,请求方式选择GET。
3、点击“Send”按钮,即可获得返回结果。