善用云函数,开源节流,小程序后端使用云函数案例

2020-12-21 21:59:18 浏览数 (1)

背景

  随着serverless越来越流行,越来越多的中小型企业,个人开发者开始接纳并使用这样一个简单,灵活的平台。由于不用自己运维服务器,不用自己考虑系统负载问题,可以为企业节省不少成本。另外对于一些轻量级的应用,甚至连后端开发人员也不需要了。

案例

  最近我们接到一个咨询,上海某网路科技有一块业务是做定制H5活动(不是市面上H5模板配置一下这么简单的)。目前是前端Vue 后端java开发,前端放在云服务器站点目录,后端放在容器里面。那么这种情况不仅仅需要维护服务器,考虑扩缩容,还需要前后端程序员去配合开发,无论是人力还是物力消耗都比较大。所以我们建议用户把站点也挪到对象存储上(开启静态网站),后端改成Nodejs,这样让前端工程师做全栈开发。此外用户还有一个要求就是,每个活动是独立的(包括后台服务),因为活动需要敏捷开发,同时不能影响其他客户的活动,估计每年会有一百多个活动的规模。这种情况特别适合使用云函数,可以一个活动对应一个函数,公共代码使用层的形式解决,该公司一年当中有旺季也有淡季,云函数只有使用才需要付费,支持动态扩缩,人力物力成本大大降低。

方案设计

  用户可以选用自己熟悉的nodejs框架,这里以Express.js为例,对于每个活动创建一个云函数,例如:

代码语言:javascript复制
# serverless.yml
component: express # (必填) 引用 component 的名称,当前用到的是 express-tencentname: express-api # (必填) 该 express 组件创建的实例名称
org: test # (可选) 用于记录组织信息,默认值为您的腾讯云账户 appid
app: expressApp # (可选) 该 express 应用名称
stage: dev # (可选) 用于区分环境信息,默认值是 dev

inputs:
  region: ap-guangzhou
  functionName: express-api
  serviceName: mytest
  runtime: Nodejs8.9
  serviceId: service-xxx
  src: ./src
  functionConf:
    timeout: 10
    memorySize: 128
    environment:
      variables:
        TEST: vale
  apigatewayConf:
    customDomains:
      - domain: abc.com
        certificateId: abcdefg
        isDefaultMapping: 'FALSE'
        pathMappingSet:
          - path: /
            environment: release
        protocols:
          - http
          - https

然后用户往函数里面填写自己的逻辑即可。

使用云函数后整体架构图如下:

0 人点赞