Serverless 应用中心 部署应用

这篇说说如何使用 Serverless Cloud Framework 快速部署云函数,包括扫码授权、打包上传、云端部署等步骤,并说明查看部署信息、配置预置并发及函数调试的方法。 部署:通过scf deploy指令完成扫码授权、打包上传与云端部署。 调试:使用scf invoke命令触发云函数进行远程调试。 预置并发:通过scf deploy –inputs为函数版本配置预置并发实例。

相关产品
Serverless 应用中心 产品页,含版本规格、价格与购买入口。

一、操作场景

完成本地项目开发后,你可以快速部署应用、查看部署信息并进行函数调试。

二、前提条件

已完成本地项目开发,详情请参见 项目开发。

三、快速部署

你可以通过 Serverless Cloud Framework,快速将项目部署到云端,具体操作如下:

scf deploy

输入该指令后,Serverless Cloud Framework CLI 将会为你完成以下操作:

四、1. 扫码授权

通过扫描二维码,完成一键授权,授权后 CLI 工具会将生成临时密钥信息写入当前目录下的 .env 文件里,临时密钥的有效时间2小时,失效后,部署的时候会引导你重新扫码鉴权。

如果不想重复扫码,你也可以将永久密钥配置在项目目录下的 .env 文件中:

# .envTENCENT_SECRET_ID=xxxxxxxxxx #你账号的 SecretIdTENCENT_SECRET_KEY=xxxxxxxx #你账号的 SecretKey

SecretId 和 SecretKey 可以在 API 密钥管理 中获取。

五、2. 打包上传

完成授权后,Serverless Cloud Framework 会根据你在 serverless.yml 文件中配置的项目代码路径,自动为你进行项目的打包与上传。

六、3. 云端部署

上传后的项目,会根据你在 yml 文件中进行的参数配置,完成云上资源的创建,部署完成后,命令行会输出部署后的资源信息。

七、高级能力

·查看部署过程中的具体日志信息:

scf deploy –debug

·多版本部署时,切换指定流量到 $latest 函数版本,其余流量到最后一次发的函数版本上,实现灰度发布。

scf deploy –inputs traffic=0.1 public=true

·应用目录下含有多个 Serverless 实例,只需要更新指定项目:

scf deploy –target xxx

例如:在该项目根目录下,通过指令 scf deploy –target ./cos,仅更新 cos 实例,其它实例不受影响。

.├── src│ ├── serverless.yml │ └── index1.js ├── cos│ └── serverless.yml ├── db│ └── serverless.yml └── .env

八、查看部署信息

完成部署后,通过以下指令,查看项目的部署信息:

scf info

九、配置预置并发

通过 scf 命令,你可以快速为你部署的函数发布新版本并绑定预置并发实例配置,具体流程如下:

注意:使用预置并发功能前,你必须保证已通过 scf deploy 完成函数 LATEST 版本部署,部署后,即可通过下列指定为函数发布版本并配置预置并发。

·默认配置 provisionedNum 预置并发数,将自动发布新版本,并为该版本绑定指定数量的并发。

scf deploy –inputs provisionedNum=100

·同时配置 provisionedNum 和 qualifier 参数,将为函数指定版本配置预置并发。

例如,在函数版本1上配置预置并发,可执行如下命令:

scf deploy –inputs provisionedNum=100 qualifier=1

如需为其他版本配置预置并发,修改 qualifier 值即可。

当前还不支持通过命令行直接移除实例,请登录函数控制台完成实例的移除;或通过 scf remove 删除函数后重新发版部署。

十、函数调试

注意:说明:

注意:当前该指令只支持通过 Serverless Cloud Framework 云函数组件 部署的函数项目,其它组件的支持也在计划中。

Serverless Cloud Framework 云函数组件支持通过 invoke 命令触发云函数进行调试。对于scf deploy部署成功的云函数,进入对应函数的项目目录下,执行函数调用命令,即可完成云上函数资源的远程调试,调试结果会在命令行进行输出:

scf invoke –inputs function=functionName clientContext='{"weights":{"2":0.1}}'

·invoke命令必须在该函数部署的 serverless.yml 文件同目录下执行。

·clientContext为触发函数时传递的 json 字符串。可以根据 触发事件模板 的 json 字符串格式模拟不同触发事件。

十一、常见问题

如你的环境配置了代理,可能会出现以下问题:

·问题 1:输入 serverless 时没有默认弹出中文引导。
解决方案: 请确认你的 IP 在中国大陆区域,并在 .env 文件中增加配置 SERVERLESS_PLATFORM_VENDOR=tencent 即可。

·问题 2:输入 scf deploy 后部署报网络错误。
解决方案:在 .env 文件中增加以下代理配置。

HTTP_PROXY=http://127.0.0.1:12345 #请将'12345'替换为你的代理端口HTTPS_PROXY=http://127.0.0.1:12345 #请将'12345'替换为你的代理端口

赞 (0)
上一篇 4天前
下一篇 4天前