操作场景
该任务指导您通过 Serverless Cloud Framework,在腾讯云上快速创建、配置和部署一个 SCF 云函数应用。
前提条件
说明
操作步骤
快速部署
在空文件夹目录下,执行如下指令:
serverless-cloud-framework
接下来按照交互提示,完成项目初始化,应用请选择
scf-starter
模板,并选择您希望用的运行时(此处以 Node.js 为例):serverless-cloud-framework: 当前未检测到 Serverless 项目,是否希望新建一个项目? Yesserverless-cloud-framework: 请选择您希望创建的 Serverless 应用 scf-starter - 快速部署一个云函数react-starter - 快速部署一个 React.js 应用restful-api - 快速部署一个 REST API 使用 python + API gateway❯ scf-starter - 快速部署一个云函数vue-starter - 快速部署一个 Vue.js 基础应用website-starter - 快速部署一个静态网站eggjs-starter - 快速部署一个Egg.js 基础应用express-starter - 快速部署一个 Express.js 基础应用serverless-cloud-framework: 请选择应用的运行时 scf-nodejs - 快速部署一个 nodejs 云函数scf-golang - 快速部署一个 golang 云函数❯ scf-nodejs - 快速部署一个 nodejs 云函数scf-php - 快速部署一个 PHP 云函数scf-python - 快速部署一个 python 云函数serverless-cloud-framework: 请输入项目名称 demoserverless-cloud-framework: 正在安装 scf-nodejs 应用...scf-nodejs › Createddemo 项目已成功创建!
选择立即部署,将已经初始化好的项目快速部署到云函数控制台:
serverless-cloud-framework: 是否希望立即将该项目部署到云端? Yesxxxxxxxxx QR xx CODE xxxxxxxxx请使用微信扫描上方二维码或者点击下方链接登录https://slslogin.qcloud.com/********登录成功!serverless-cloud-frameworkAction: "deploy" - Stage: "dev" - App: "scfApp" - Name: "scf-nodejs"code:bucket: sls-cloudfunction-ap-guangzhou-codeobject: /scf_component_******-**********.zipdescription: This is a function in scfApp applicationfunctionName: scf-nodejs-dev-scfApphandler: index.main_handlerlastVersion: $LATESTmemorySize: 128namespace: defaultruntime: Nodejs10.15sourceCodeDownloadUrl: https://sls-app-code-prod-**********.cos.ap-guangzhou.myqcloud.com/***triggers:-NeedCreate: trueapiList:-apiId: api-********apiName: indexauthType: NONEbusinessType: NORMALcreated: trueisBase64Encoded: falsemethod: GETpath: /created: trueenvironment: releaseprotocols: httpserviceId: service-********serviceName: serverlesssubDomain: service-********-**********.gz.apigw.tencentcs.comurls:- http://service-********-**********.gz.apigw.tencentcs.com/release/type: event应用控制台: https://serverless.cloud.tencent.com/apps/scfApp/scf-nodejs/dev184s »scf-nodejs» 执行成功
部署完毕后,通过以下指令,完成函数的远程调用:
scf invoke --inputs function=helloworld
说明
serverless-cloud-framework
命令的简写为 scf
。查看部署信息
如果希望再次查看应用的部署状态和资源,可以进入到部署成功的文件夹,运行如下命令,查看对应信息:
cd demo #进入项目目录,此处请改为您的项目目录名称scf info
查看目录结构
在初始化的项目目录下,可以看到一个 Serverless 函数项目的最基本结构:
.├── serverless.yml # 配置文件├—— index.js # 入口函数└── .env # 环境变量文件
serverless.yml 配置文件实现了函数基本信息的快速配置,函数控制台支持的配置项都支持在 yml 文件里配置(查看 云函数的全量配置信息)。
index.js 为项目的入口函数,此处为 helloworld 模板。
.env 文件里存放了用户登录的鉴权信息,您也可以在里面配置其它环境变量。
重新部署
在本地项目目录下,您可以对函数模板项目内容与配置文件进行修改,并通过以下指令进行重新部署:
scf deploy
说明
如需查看移除过程中的详细信息,可以增加
--debug
参数进行查看。持续开发
部署完成后,Serverless Cloud Framework 支持通过不同指令,帮助您完成项目的持续开发部署、灰度发布等能力,您也可以结合其它组件一起使用,完成多组件应用的部署管理。
常见问题
问题1:输入
serverless-cloud-framework
时没有默认弹出中文引导。解决方案: 在 .env 文件中增加配置 SERVERLESS_PLATFORM_VENDOR=tencent 即可。
问题2:在境外网络环境,输入
scf deploy
后部署十分缓慢。解决方案:在 .env 文件中增加配置
GLOBAL_ACCELERATOR_NA=true
则开启境外加速 。 问题3:输入
scf deploy
后部署报网络错误。解决方案:在 .env 文件中增加以下代理配置。
HTTP_PROXY=http://127.0.0.1:12345 #请将'12345'替换为您的代理端口HTTPS_PROXY=http://127.0.0.1:12345 #请将'12345'替换为您的代理端口