操作场景
Web 函数是腾讯云云函数 SCF 新支持的函数能力,区别于事件函数(Event Function)对于事件格式的限制,该类型函数专注于优化 Web 服务场景,用户可以直接发送 HTTP 请求到 URL 触发函数执行,详情请参见 函数概述。
Serverless Cloud Framework SCF 组件现已支持 Web 类型函数部署,您可以通过 SCF 组件,快速创建与部署 Web 函数。
操作步骤
1. 执行以下命令,初始化 Serverless Web 函数模板。
scf init scf-nodejs
2. 进入示例项目,查看目录结构。示例如下:
. http-demo├── serverless.yml # 配置文件├── package.json # 依赖项文件├── scf_bootstrap # 项目启动文件└── index.js # 服务函数
3. 打开
serverless.yml
,查看配置信息。
您只需要在 yml
里新增 type
参数,指定函数类型,即可完成 Web 类型函数部署。注意
对于 Web 类型函数,无需再指定入口函数。
不填
type
参数时,默认为事件型函数。如果本地代码里无
scf_bootstrap
启动文件,您可以在 yml
里指定 entryFile
参数指定入口函数,组件会根据运行语言,为您生成默认 scf_bootstrap
启动文件完成部署。部署完成后,需根据您的实际项目情况,在 云函数控制台 修改 scf_bootstrap
文件内容。示例 yml 如下:
component: scfname: httpinputs:src:src: ./exclude:- .env# 指定 SCF 类型为 Web 类型type: webname: web-functionregion: ap-guangzhouruntime: Nodejs12.16# 对于 Node.js,可以支持打开自动安装依赖installDependency: trueevents:- apigw:parameters:protocols:- http- httpsenvironment: releaseendpoints:- path: /method: ANY
4. 在根目录下执行
scf deploy
命令,即可完成服务部署。示例如下: $ scf deployserverless-cloud-frameworkAction: "deploy" - Stage: "dev" - App: "http" - Name: "http"type: webfunctionName: web-functiondescription: This is a function in http applicationnamespace: defaultruntime: Nodejs12.16handler:memorySize: 128lastVersion: $LATESTtraffic: 1triggers:-NeedCreate: truecreated: trueserviceId: service-xxxxxxserviceName: serverlesssubDomain: service-xxxxxx.cd.apigw.tencentcs.comprotocols: http&httpsenvironment: releaseapiList:-path: /method: ANYapiName: indexcreated: trueauthType: NONEbusinessType: NORMALisBase64Encoded: falseapiId: api-xxxxxxinternalDomain:url: https://service-xxxx.cd.apigw.tencentcs.com/release/18s › http › 执行成功
相关命令
查看访问日志
与事件型函数相同,可直接通过 scf log 命令查看部署完成的函数最近10条日志信息。示例如下:
$ scf logserverless-cloud-frameworkAction: "log" - Stage: "dev" - App: "http" - Name: "http"-requestId: xxxxxretryNum: 0startTime: 1624262955432memoryUsage: 0.00duration: 0message:"""-requestId: xxxxxretryNum: 0startTime: 1624262955432memoryUsage: 0.00duration: 0message:"""
测试服务
方案 1:在浏览器直接打开输出的路径 URL,如果可以正常访问,则说明函数创建成功。如下图所示:
方案 2:您可以使用其他 HTTP 测试工具,例如 CURL、POSTMAN 等工具测试您已创建成功的 Web 函数。如下示例为通过 CURL 工具测试:
curl https://service-xxx.cd.apigw.tencentcs.com/release/
删除服务
执行以下命令,即可移除您已部署的云上资源。
scf remove
Web 框架迁移
Serverless Cloud Framework 还提供了专门针对 Web 框架部署的 HTTP 组件,快速实现 Web 框架部署、创建层、静态资源分离、CDN 加速等功能,使用方式请参见 通过命令行完成框架部署。