腾讯云serverless初体验

3,860 阅读2分钟

Serverless ,按中文翻译,称为无服务器。这究竟是一种什么样的形态或产品呢?无服务器,就是真的没有服务器吗?其实,在行业内,目前对于 Serverless 有几种解读方法:在某些场景可以解读为一种软件系统架构方法,通常称为 Serverless 架构;而在有些情况下,又可以代表一种产品形态,称为 Serverless 产品。

1.体验内容

  1. 怎样本地开发一个 Serverless 项目?
  2. 怎样对 Serverless 函数进行本地调试?
  3. 开发过程中打印的日志是否可以方便的检索并用于 debug?
  4. 如何保证本地环境和云端环境的一致?
  5. 发布时怎样将多个函数一次性发布到云环境中?

先说感受,在小程序场景下已经有很多应用使用了Serverless,Serverless 特别适合于,轻量级快速变化地 API。例如物联网、小应用、开关,挡板服务等应用场景。不适合业务很复杂,上下游系统依赖特别多的应用。

2.开始体验

2.1插件安装

marketplace.visualstudio.com/items?itemN…

获取appid,secrtid,secretkey console.cloud.tencent.com/cam/capi

2.2调试

测试云函数

本地node测试

2.3上传函数

可能会遇到问题:

问题描述很清晰,看这里:

runtime 必须本地和云上同时都有才可以用,所以这里我用不了node10

[INFO]YAML {
  keyword: 'enum',
  dataPath: ".Resources['default']['add'].Properties.Runtime",
  schemaPath: '#/properties/Resources/additionalProperties/oneOf/0/additionalProperties/oneOf/0/properties/Properties/properties/Runtime/enum',
  params: {
    allowedValues: [
      'Python2.7',  'Python3.6',
      'Nodejs6.10', 'Nodejs8.9',
      'Php5',       'Php7',
      'Go1',        'Java8',
      'python2.7',  'python3.6',
      'nodejs6.10', 'nodejs8.9',
      'php5',       'php7',
      'go1',        'java8',
      [length]: 16
    ]
  },
  message: 'should be equal to one of the allowed values'
}

2.4测试

鉴权方式: 免鉴权, 可以在触发器中配置

2.5使用postman测试

支持restful 方式调用;

content-Type: 支持x-www-form-urlencoded 和 application/json 两种; postman中的raw = application/json。

实现一个acl功能

TODO

  • 如何使用数据库?
  • 如何调用其他服务?
  • serverless.ink/ 应用指南
  • 如何和现有业务结合?
  • node开发真的很方便

其他

腾讯开发者社区

github.com/serverless/…

console.cloud.tencent.com/scf/list-de…

serverless.cloud.tencent.com/instances/w…

developers.weixin.qq.com/miniprogram…

www.sohu.com/a/340102558…