Skip to content
Tencent Cloud Egg.js Serverless Component
JavaScript HTML
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
docs feat: update dependency apigw for supporting custom domain Feb 18, 2020
example feat: update dependency apigw for supporting custom domain Feb 18, 2020
src
.editorconfig feat: init project Dec 23, 2019
.eslintignore feat: init project Dec 23, 2019
.eslintrc.js feat: init project Dec 23, 2019
.gitignore feat: init project Dec 23, 2019
.npmignore feat: rm example folder Dec 24, 2019
.npmrc feat: init project Dec 23, 2019
.prettierignore fix: tencent-scf version Dec 30, 2019
CHANGELOG.md chore(release): 0.2.1 Feb 18, 2020
LICENSE feat: init project Dec 23, 2019
README.en.md docs: update protocols config Feb 5, 2020
README.md docs: update protocols config Feb 5, 2020
commitlint.config.js fix: commitlint Jan 20, 2020
package.json chore: update commit prettire Feb 19, 2020
prettier.config.js feat: init project Dec 23, 2019
serverless.js feat: init project Dec 23, 2019
serverless.test.js feat: init project Dec 23, 2019

README.md

Serverless Egg Tencent Cloud

腾讯云 Egg.js Serverless Component

简体中文 | English

简介

腾讯云 Egg.js Serverless Component, 支持 Restful API 服务的部署。

目录

  1. 准备
  2. 安装
  3. 配置
  4. 部署
  5. 移除

0. 准备

初始化 Egg 项目

$ mkdir egg-example && cd egg-example
$ npm init egg --type=simple
$ npm i

新增初始化文件

在项目根目录下新建文件 sls.js,内容如下:

const { Application } = require('egg')

const app = new Application()

module.exports = app

修改 Egg 配置

由于云函数在执行时,只有 /tmp 可读写的,所以我们需要将 egg.js 框架运行尝试的日志写到该目录下,为此需要修改 config/config.default.js 中的配置如下:

const config = (exports = {
  env: 'prod', // 推荐云函数的 egg 运行环境变量修改为 prod
  rundir: '/tmp',
  logger: {
    dir: '/tmp'
  }
})

注意!!!

由于 eggegg-static 静态资源插件是默认开启的,所以在启动应用时,会尝试创建 app/public 目录,但是云函数执行环境只有 /tmp 可读写,所以需要本地创建,并添加 .gitkeep 文件(为空就好)。

但是如果你并不想使用静态资源,可以修改 config/plugin.js 来禁用它:

module.exports = {
  static: {
    enable: false
  }
}

1. 安装

通过 npm 全局安装 serverless cli

$ npm install -g serverless

2. 配置

在项目根目录创建 serverless.yml 文件,在其中进行如下配置

$ touch serverless.yml
# serverless.yml

MyComponent:
  component: '@serverless/tencent-egg'
  inputs:
    region: ap-guangzhou
    functionName: egg-function
    code: ./
    functionConf:
      timeout: 10
      memorySize: 128
      environment:
        variables:
          TEST: vale
      vpcConfig:
        subnetId: ''
        vpcId: ''
    apigatewayConf:
      protocols:
        - https
      environment: release

3. 部署

如您的账号未 登陆注册 腾讯云,您可以直接通过 微信 扫描命令行中的二维码进行授权登陆和注册。

通过 sls 命令进行部署,并可以添加 --debug 参数查看部署过程中的信息

$ sls --debug

注意: slsserverless 命令的简写。

4. 移除

通过以下命令移除部署的 API 网关

$ sls remove --debug

账号配置(可选)

当前默认支持 CLI 扫描二维码登录,如您希望配置持久的环境变量/秘钥信息,也可以本地创建 .env 文件

$ touch .env # 腾讯云的配置信息

.env 文件中配置腾讯云的 SecretId 和 SecretKey 信息并保存

如果没有腾讯云账号,可以在此 注册新账号

如果已有腾讯云账号,可以在 API 密钥管理 中获取 SecretIdSecretKey.

# .env
TENCENT_SECRET_ID=123
TENCENT_SECRET_KEY=123

更多组件

可以在 Serverless Components repo 中查询更多组件的信息。

You can’t perform that action at this time.