创建一个 Serverless 应用,真的没有这么难!

2020-10-21 10:40:54 浏览数 (1)

上周五我们给开发者带来了一个好玩还有奖的游戏 —— Serverless 有一百种玩法,比好玩更好玩

礼品已经到位!为了让大家能更好地玩转 Serverless,拿走我们的大奖,我们特意为新手/初学者准备了一则极其简单的教程指引。

  1. 如何复用现成 demo:两步完成应用初始化,并实现云端的快速部署!
  2. 快速开发一个 Serverless demo,简单的三步实现自己的第一个程序。

毕竟,我们是 Serverless 

—— 让开发者能轻而易举地写出一个自己的应用,更专注于拿奖(自己的代码)。

模板下载与复用

以云函数 SCF 为例,一个 HelloWorld 的应用复用如下:

使用者可以直接体验组件模版:快速获取到组件或者模版的信息,并支持项目源代码的下载复用,完成项目的快速部署。

新手友好度 100 ?

1. 使用应用

当您的本地环境无目标应用,可以通过 sls init指令快速完成应用初始化,init 后加上您需要使用的模版名称,以云函数 SCF 模版为例,指令如下:

代码语言:javascript复制
sls init scf-demo
cd scf-demo

2. 模版快速部署

初始化完成后,您可以在本地项目文件夹内完成您的项目开发,再通过 sls 指令完成云端快速部署:

代码语言:javascript复制
sls deploy --debug

创建与发布应用

三步开发自己的第一个程序是什么体验 ?

1. 创建配置文件

在您的项目目录下,新建 src 文件夹,完成您的应用开发,此处以一个最简单的定时触发 HelloWorld 为例,入口函数 index.js 代码如下:

代码语言:javascript复制
'use strict';
exports.main_handler = async (event, context) => {
    console.log("Hello World")
    console.log(event)
    console.log(event["non-exist"])
    console.log(context)
    return event
};

在相同目录内,创建配置文件 serverless.yml,按如下示例填入您的应用配置信息:

代码语言:javascript复制
app: my-firstdemo # 应用名称
component: scf # 组件名称,在该实例中为scf
name: serverless-demo # 该实例名称

#实例参数
inputs:
  name: helloworld #函数名称
  src: ./  #上传的项目代码路径
  handler: index.main_handler #入口
  runtime: Nodejs10.15 # 云函数运行时的环境
  region: ap-guangzhou # 云函数所在区域
  events: # 触发器
    - timer: # 定时触发器
        name: #触发器名称,默认timer-${name}-${stage}
        parameters:
          cronExpression: '*/30 * * * * * *' 
          enable: true

注意:如果您的应用包含多个函数,请为每个函数配置对应配置文件,并使用相同的 app 参数

2. 配置应用信息

回到项目根目录下,创建模版配置文件 serverless.template.yml,配置您的项目模版信息(Registry 里的项目模版名不能重复,如果发布失败请更换模版名称)

代码语言:javascript复制
name: my-demo-xxx # 项目模板名称,只支持英文与符号'-',后缀请填入您的appid,保证 demo 名称唯一性
author: # 作者的名字
description:  This is helloworld function  # 英文描述
description-i18n:
  zh-cn: helloworld 空白模板函数 # 中文描述
type: template #类型:模版
keywords: tencent, scf, Nodejs10.15, helloworld # 关键字
repo:  # (可选)源代码仓库地址
readme:  # (可选)readme地址
license: MIT # 版权声明
src: # 描述项目中的哪些文件需要作为模板发布
  src: ./src # 指定具体的相对目录,此目录下的文件将作为模板发布
  exclude: #描述在指定的目录内哪些文件应该被排除
    # 通常你希望排除
    # 1. 包含secrets的文件
    # 2. .git git源代码管理的相关文件
    # 3. node_modules等第三方依赖文件

配置完成后,项目目录结构如下:

代码语言:javascript复制
|-- my-demo
    |-- serverless.template.yml
    |-- src
    |   |-- index.js
    |   |-- serverless.yml

3. 发布应用

  • 安装 Serverless Framework
代码语言:javascript复制
npm install -g serverless
  • 进入项目根目录下,完成项目发布,发布后的项目完全公开,所有用户都可以下载复用
代码语言:javascript复制
sls publish
  • 发布完成后,运行以下指令查看应用部署信息,如果可以返回应用信息,则应用已发布完成
代码语言:javascript复制
sls registry my-demo-xxx

对照上述代码跑一遍,你也可以写一个 Serverless 应用。参与活动,还有大奖拿! ?《Serverless 有一百种玩法,比好玩更好玩

One More Thing

点击「阅读原文」,转发评论有奖!?

代码语言:javascript复制
截止时间:10.24 24:00

0 人点赞