如何用Serverless快速在APP中构建调研问卷

如何用Serverless快速在APP中构建调研问卷,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

前言

Serverless计算让开发者能够以更高的灵活性和更低的成本构建现代应用程序。开发者无需配置和管理服务器等基础设施,可将全部精力投入核心业务。

Serverless相比传统的serverful开发方式有着本质的区别:

  1. 计算和存储的解耦;它们独立扩展,独立定价;

  2. 代码的执行不再需要手动分配资源;

  3. 按使用量计费。

Serverless快速构建构建APP问卷调查

函数服务作为Serverless架构中的核心计算组件,可应用于各类Serverless架构,主要包括两大类:Web、移动、IoT、AI等无服务器后端和数据处理系统后端。

其中,Web、移动serverless后端的典型场景应用最为广泛,本文介绍如何使用函数服务+API网关分分钟在京东云APP中构建用户问卷调查。

构建APP问卷调查可由两个简单函数完成:获取问卷内容和提交答案。

Step1:创建存储

创建一个用于存储问卷题库及用户答案的数据库或对象存储bucket,本示例创建一个云缓存Redis实例(主从4GB)。

Step2:创建函数

在函数服务中创建并测试两个函数(运行时:Python2.7)

创建函数1

创建函数jcloud-app-survey-topic:请求用户PIN,问卷版本version,从数据库获取问卷内容,将入口文件index.py与依赖库redis SDK打包上传至函数服务。index.py代码如下:

#coding=utf-8

import json
import redis'''下载问卷'''
def handler(event,context):

    if  not bool(event):
        result = {
            'statusCode': 200,
            'headers': {},
            'body': "",
        }

        return result


    body = event['detail']['body']
    body = json.loads(body)
    pin = body.get('pin', "")
    version = body.get('version', "")
    print(pin)
    print(version)

    r = redis.Redis(host='redis-v214pzrgiicq-proxy-nlb.jvessel-open-hb.jdcloud.com', port=6379, db=0)

    topic = r.hget('topic_' + version, version)
    data = {'pin': pin, 'version': version, 'topic': topic}
    data = json.dumps(data)

    result = {
        'statusCode': 200,
        'headers': {},
        'body': data,
    }

return result

函数测试

如何用Serverless快速在APP中构建调研问卷  serverless 第1张

创建函数2

创建函数2jcloud-app-survey-submit :请求用户PIN,问卷版本version,用户答案submit,上传至数据库,将入口文件index.py与依赖库redis SDK打包上传至函数服务。index.py代码如下。

#coding=utf-8

import json
import redis'''
上传问卷结果'''
def handler(event,context):

    if  not bool(event):
        result = {
            'statusCode': 200,
            'headers': {},
            'body': "",
        }

        return result

    body = event['detail']['body']
    body = json.loads(body)
    pin = body.get('pin', "")
    version = body.get('version', "")
    submit = body.get('submit', "")
    print(pin)
    print(version)
    print(submit)

    r = redis.Redis(host='*********.jdcloud.com', port=6379, db=0)

    old = r.hget('submit_' + version, pin)
    if old != None :
      data = {'code': 1, 'desc': 'user have submitted'}
      data = json.dumps(data)
      result = {
        'statusCode': 200,
        'headers': {},
        'body': data,
      }
      return result

    r.hset('submit_' + version, pin, submit)

    data = {'code': 0, 'desc': 'success'}
    data = json.dumps(data)
    result = {
        'statusCode': 200,
        'headers': {},
        'body': data,
    }

    return result

函数测试

如何用Serverless快速在APP中构建调研问卷  serverless 第2张

Step 3:创建发布API

在API网关创建两个API,作为触发器绑定至对应函数,通过function响应API请求,并将API发布至测试环境。jcloud-app-survey-topic函数绑定API触发器如下:

如何用Serverless快速在APP中构建调研问卷  serverless 第3张

jcloud-app-survey-submit函数绑定API触发器如下:

如何用Serverless快速在APP中构建调研问卷  serverless 第4张

Step 4:验证上线

通过本地API接口测试工具验证API接口无误,即可与前端H5页面开发联调,测试完成后,可通过函数版本、别名功能管理线上函数迭代发布。

以上,快速完成APP后端上线,只等活动上线

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注蜗牛博客行业资讯频道,感谢您对蜗牛博客的支持。

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:niceseo99@gmail.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

评论

有免费节点资源,我们会通知你!加入纸飞机订阅群

×
天气预报查看日历分享网页手机扫码留言评论Telegram