专栏首页Tencent Serverless 官方专栏Serverless实践系列(十):全新命令行工具帮你快速部署云函数

Serverless实践系列(十):全新命令行工具帮你快速部署云函数

SCF CLI 是腾讯云云函数(Serverless Cloud Function,SCF)产品的命令行工具,想必很多小伙伴已经有所了解,或者试用过了。作为一个可以提高开发者效率的工具,腾讯云 Serverless 团队一直在对 SCF CLI 进行优化工作,本文将给大家介绍新版 SCF CLI 增加的有趣功能!


介绍

一、Deploy 功能优化

1:部署可以选择默认 COS

只需要在设置的时候,设置 using-cos 就可以,当然也可以 scf configure set --using-cos y 来直接设置:

选择之后,可以在接下来的部署中,默认上传代码到你的 cos,提高部署速度:

即使设置了 cos,在某次 Deploy 时,不想使用 cos,也可以选择不通过 cos 部署,增加 --without-cos:

想自定义 COS 也可以:--cos-bucket:

(由于没有这个 cos,所以上传失败)

在日常使用过程中,可能会存在部署同样一段代码的情况。

比如,我部署了 A 代码,又部署了 B 代码。之后,我想重新部署 A 代码,按照传统方法是可以再次上传 A 代码,但如果 Package 比较大,就比较难受了。而新版本的 CLI 经过测试,130M 的 Package 首次部署使用 25s,第二次部署同样的文件,只需要 2s。

附:COS 的相关计费链接

  • 免费额度:

https://cloud.tencent.com/document/product/436/6240

  • 计费概述:

https://cloud.tencent.com/document/product/436/16871

  • 计费方法:

https://cloud.tencent.com/document/product/436/36522

  • 产品定价

https://cloud.tencent.com/document/product/436/6239

2:部署历史版本

代码部署过程中,如果出现问题,需要恢复历史版本。新版本的 SCF CLI 支持部署历史版本,在大家使用了 using-cos 之后,可以通过 deploy 的参数 --history 来部署历史版本:

选择一个历史版本,就可以直接实现文档回滚:

3:打包功能优化

旧版 SCF CLI 会把用户目录下的全部文件打包,新版 SCFCLI 在这方面也做了重点优化,可以直接指定 ZIP,指定某文件,并且打包的时候会默认去除 .git 等隐藏目录,并且在 deploy 之后,默认删除之前的打包信息。

Yaml 文件可以这样:

二、新增 Delete 功能

旧版 SCF CLI 不支持 Delete 功能,在新版中,大家可以轻松自在地使用:

只需要输入 scf delete --help 就可以看到使用方法和参数描述哦!

三、新增 List 功能

以往,如果想查看云函数的内容,或者我部署了哪些函数,是需要去控制台挨个区域、挨个 namespace 查看。现在无需繁琐,通过 List 指令即可实现:

同样可以通过 SCF 的 --help 来查看所有用法:scf list --help

四、帮助文档的优化

上面的很多说明,都是让大家使用 --help 来查看帮助,那么在新版中,--help 有哪些大的优化呢 —— 全局的帮助文档优化,在任何指令下都可以 --help 查看帮助:

在指令页面可以进行例子查看:

每个主要的指令,都会有指令的描述以及使用例子,同时规范了参数描述。

五、API 网关部分

现有 SCF CLI 在使用 API 网关的时候每次都需要新建,如果不想新建,就需要注释配置文件或者使用 --skip-event,这让很多用户头疼。新版 SCF CLI 在 API 网关部分增加了 ServiceId 字段:

有了这个字段,大家使用的时候可以直接选择绑定已有网关。新建网关之后,系统会进行提示:

把对应的网关 ID 填写上即可避免下次创建。这样一个简单的字段增加,给小伙伴们带来了两个优秀的体验:

    1:可以绑定现有的 API 网关,不需要新建

    2:可以保证现有网关形态,不会每次新建

六、输出信息优化

有心的小伙伴应该注意到了,本次更新,UI 变化非常大。在我们使用云函数的时候,不同表达会用不同的颜色显示:

同时,Deploy 之后,大家不用打开网页看云函数信息,而是通过控制台直接看到:

实验

Hello world

以 Hello World 为例,通过帮助查看 init 创建指令:

scf init --help

根据例子创建 Python 语言的 hello world:

scf init --runtime python3.6

按照提示:cd hello_world 进行项目编辑

修改代码和配置网关:

网关这里要用,我不想新建网关,而是想要用已经有的一个 API 网关:

填写好 serviceeId:

然后保存退出,Deploy:

部署之后,输出函数信息:

打开 API 网关中 subDomain:

部署成功!

查看函数列表

只需要输入 scf list

删除函数

只需要输入需要删除的函数相关信息:

scf delete --name hello_world --region ap-shanghai --namespace default

本文关于命令行工具的介绍和实践就暂告一段落。

更多功能,等待各位小伙伴自行挖掘哦!


推荐阅读:

本文分享自微信公众号 - ServerlessCloudNative(ServerlessGo),作者:刘宇

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-09-18

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Serverless 动态博客开发趟“坑”记 | 社区精选文章

    本文为 Serverless 社区成员撰稿。作者云洋,从事信息管理工作,多年电子政务信息系统建设管理经验,对 Serverless 技术和架构有浓厚兴趣。供稿...

    腾讯云serverless团队
  • Serverless DB 设计解读和实战

    哈喽小伙伴们,我们都知道数据库在项目开发中往往是不可或缺的一环,而在云计算热度不断提升的背景之下,我们对于使用数据库的成本以及灵活性有了更高的要求。 Serv...

    腾讯云serverless团队
  • 腾讯云 Serverless 部署应用耗时降低了 73%

    在使用 Serverless Framework 部署 Next.js,Egg.js 项目时,由于安装的依赖包过大,部署时压缩上传时间很长,可能出现上传超时、...

    腾讯云serverless团队
  • C风格简易本地log系统

    该C风格简易log日志系统,适合与Linux平台系统,主要用于格式化输出日志到本地指定的文件中,可指定log文件数目、最大大小、行数、按时间切换等功能,可满足基...

    Dabelv
  • 关于C/S架构系统的安全监测

    由于工作需求,需要对一大批C/S架构的系统进行测试,所以这几天一直在摸索怎么个套路法,踩过的坑就不发了,直接奔我个人的套路: C/S架构的系统,说最直白一点就是...

    FB客服
  • 新一代攻击方式或将闪亮登场,声波攻击可使硬盘数据瞬间丢失

    这两天大家的元旦礼物肯定收了不少,不过安全界的爆炸性新闻也是层出不穷,让你不断地挑战着自己的思维认知。就在前两天,南洋理工大学的Shivam Bhasin博士研...

    企鹅号小编
  • 利用cos或cdn对网站进行加速

    刚刚迁移到 typecho, 随手一篇文章,添加了图片,我再次访问发现图片加载有点缓慢,于是我决定使用 cos 对网站进行加速。

    乔千
  • PHP7 新特性简介(一)

    PHP7是PHP编程语言全新的一个版本,在性能方面获得了极大的提升。官方的文档显示,PHP7可以达到PHP5.x版本两倍的性能。同时还提供了很多其他语言流行的语...

    郑科
  • 在您的浏览器中构建和共享开发者环境

    近年来,我们见证了旨在简化开发者生活的技术的惊人进步。即使有出色的解决方案,创建、配置和共享开发者环境可能是一件非常令人头疼的事。Vagrant + Virtu...

    Techeek
  • Nginx日志配置

    众所周知,线上如果出现事故我们通常都是查看日志去进行问题定位并且进行修复。使用好Nginx日志有利于我们线上进行修复异常问题。在Nginx中日志主要分为两种:...

    逆月翎

扫码关注云+社区

领取腾讯云代金券