注意:由于域名备案更新,目前 CLI 部署流程无法通过扫码登录,你可以通过本地配置永久密钥,或者根据命令行提示,通过访问 URL 完成登录,详情见 账号和权限配置。
一、前提条件
·已经 安装 Serverless Cloud Framework 1.67.2 以上版本。
npm install -g serverless-cloud-framework
·已经 注册腾讯云账号 并完成 实名认证。
注意:说明:
注意:如果你的账号为腾讯云子账号,请先联系主账号,参考 账号和权限配置 进行授权。
二、快速部署
在空文件夹目录下,执行如下指令:
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://scflogin.qcloud.com/XKYUcbaK登录成功!serverless-cloud-frameworkAction: "deploy" – Stage: "dev" – App: "scfApp" – Instance: "scfdemo"functionName: helloworlddescription: helloworld 空白模板函数namespace: defaultruntime: Nodejs10.15handler: index.main_handlermemorySize: 128lastVersion: $LATESTtraffic: 1triggers: apigw: – http://service-xxxxxxx.gz.apigw.tencentcs.com/release/27s › scfdemo › Success
部署完毕后,通过以下指令,完成函数的远程调用:
scf invoke –inputs function=helloworld
注意:说明:
注意:scf 是 serverless-cloud-framework 命令的简写。
三、查看部署信息
如果希望再次查看应用的部署状态和资源,可以进入到部署成功的文件夹,运行如下命令,查看对应信息:
cd demo #进入项目目录,此处请改为你的项目目录名称scf info
四、查看目录结构
在初始化的项目目录下,可以看到一个 Serverless 函数项目的最基本结构:
.├── serverless.yml # 配置文件├—— index.js # 入口函数└── .env # 环境变量文件
·serverless.yml 配置文件实现了函数基本信息的快速配置,函数控制台支持的配置项都支持在 yml 文件里配置(查看 云函数的全量配置信息)。
·index.js 为项目的入口函数,此处为 helloworld 模板。
·.env 文件里存放了用户登录的鉴权信息,你也可以在里面配置其它环境变量。
五、重新部署
在本地项目目录下,你可以对函数模板项目内容与配置文件进行修改,并通过以下指令进行重新部署:
scf deploy
注意:说明:
注意:如需查看移除过程中的详细信息,可以增加 –debug 参数进行查看。
六、持续开发
部署完成后,Serverless Cloud Framework 支持通过不同指令,帮助你完成项目的持续开发部署、灰度发布等能力,你也可以结合其他组件一起使用,完成多组件应用的部署管理。
注意:触发器部署逻辑说明如下:
注意:当通过 CLI 部署触发器时,如果本地配置文件(YAML)与云端的函数配置存在配置项差异,并且该触发器的类型不支持更新操作,系统将采取以下强制操作:
注意:1. 自动删除现有的云端触发器。
注意:2. 根据本地 YAML 配置文件重新创建一个新的触发器。
注意:请注意:不支持更新的触发器类型包括: CLS 触发器(日志服务)、CLB 触发器(负载均衡)、COS 触发器(对象存储)、CMQ 触发器(消息队列)。
注意:请仔细评估此操作(删除旧触发器)影响,避免影响业务使用。
详情请参考文档 应用管理 与 支持命令列表。
七、输入 serverless-cloud-framework 时没有默认弹出中文引导
解决方案:在 .env 文件中增加配置 SERVERLESS_PLATFORM_VENDOR=tencent 即可。
八、在境外网络环境,执行 scf deploy 后部署十分缓慢
解决方案:在 .env 文件中增加配置 GLOBAL_ACCELERATOR_NA=true 则开启境外加速 。
九、执行 scf deploy 后部署报网络错误
解决方案:在 .env 文件中增加以下代理配置。
HTTP_PROXY=http://127.0.0.1:12345 #请将'12345'替换为你的代理端口HTTPS_PROXY=http://127.0.0.1:12345 #请将'12345'替换为你的代理端口