专栏首页KaliArch【玩转腾讯云】Serverless+CVM实战
原创

【玩转腾讯云】Serverless+CVM实战

一 背景

写过一篇Serverless初探,后期结合Tencent Serverless Toolkit for VS Code的IDE插件,刚好借此使用下,相较于之前没有IDE插件,编码在本地,但是debug非常繁琐,需要上传代码到云端控制台操作,现在有了IDE插件从本地编码测试上传部署一条路,快速体验下此为SCF添翼的神器。

二 Serverless+CVM实战

2.1 项目背景

目前有客户有需求对数量众多的测试环境想通过非工作时间进行关机操作,同时腾讯提供关机不收费的CVM操作,一定程度可以节省IT开支,每天早上工作时间提前进行开机,如此如果人工来操作重复周期性的操作显然非常不合适,但是共有云目前没有提供这种对服务器定时开关机操作的产品功能,只能利用其API来进行,但是需要一台具备公网能力的服务器来发起API调用请求,此时刚好利用Serverless的 Tencent Serverless Toolkit for VS Code小试牛刀,本次示例利用腾讯无服务器云函数(CFS)简单示例下Serverless的一小部分功能。

之前由于没有IDE,将程序部署到CFS后运行不便与调试,现在有了神器Tencent Serverless Toolkit for VS Code,简单方便的本地配置,快速拉取云端函数并可以在本地模拟COS,CMQ,API网关等出发事件运行还书,本地化的开发,调试,可谓补齐了CFS不便于代码上传调试的缺点,利用此插件可在本地快捷调试代码,一键上传程序,为CFS如虎添翼。

2.2 项目编写

2.2.1 根据模版创建项目

2.2.2 填写项目名称

填写项目名称完成项目创建

2.2.3 了解项目结构

在项目模版中,主要关注index.py 和template.yaml

  • Index.py 为业务逻辑代码
  • Template.yaml 为腾讯云SCF配置相关,如下为我的定时任务配置

为提高安全性其中由于使用的了腾讯云的secretid/secretkey,将其作为变量放置在配置中,业务代码从配置中获取,

其中也配置了超时时间以及定时cron

Resources:
  default:
    Type: TencentCloud::Serverless::Namespace
    cvm_oper:
      Properties:
        CodeUri: .
        Description: cvm oper
        Environment:
          Variables:
            secretid: AKIDZyGxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
            secretkey: kFUTDkxxxxxxxxxxxxxxxxxxxxxxxx
        Events:
          stop_cvm:
            Properties:
              CronExpression: 0 59 11 * * MON-FRI *
              Enable: true
            Type: Timer
        Handler: index.main_handler
        MemorySize: 128
        Runtime: Python3.6
        Timeout: 10
        VpcConfig:
          SubnetId: ''
          VpcId: ''
      Type: TencentCloud::Serverless::Function

2.3 编写代码

2.3.1 代码程序

在此我利用腾讯云的CVM的SDK进行了云服务器的停止与开机操作,在此简单实例下cvm启动

其中有event,正式环境可以为其传入自己业务需求的参数来处理具体业务逻辑。

2.3.2 本地测试

在本地IDE进行运行测试

查看以及运行成功,服务器也正常启动

2.4 上传项目到云端

2.4.1 上传到云端进行测试

2.4.2 云端查看项目

2.5 云端测试

2.6 查看运行日志

至此我们以及利用Tencent Serverless Toolkit for VS Cod完成了简单的项目编写部署,在此只是抛砖引玉,实际代码需要考虑到传入参数,多项目协调部署等。

三 思考

从裸金属物理服务器到虚拟化平台,再到云服务器,现在到容器技术,Serverless以函数为扩展单位,虚拟化运行时环境(Runtime)。是现有计算资源的最小单位,具有完全自动、一键部署、高度可扩展等特点。开发者在构建和运行应用时无需管理服务器等基础设施,应用被解耦为细粒度的函数,函数是部署和运行的基本单位。用户只为实际使用的资源付费。

拥有了Tencent Serverless Toolkit for VS Code,对于SCF如鱼得水,本地化代码编写测试上传部署一条龙,配置也托管在代码中,无需在登录云平台进行配置,config as code模式大大提升了SCF的效率,简化操作,适用于开发人员。

在此只是最简单的试用了一下CFS,其更强大的功能及优势在云计算的潮流下后期会越显明显,适用场景众多,业务进行拆分,分工更加精细。截取官网的一张最常用的移动与WEB应用图,业务各模块分离,函数具有弹性伸缩,前端入口为各业务模块的API网关,配合CDB/COS完成总体架构。

参考链接:

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Serverless初探

    无服务器计算是指开发者在构建和运行应用时无需管理服务器等基础设施,应用被解耦为细粒度的函数,函数是部署和运行的基本单位。用户只为实际使用的资源付费。这些代码完全...

    KaliArch
  • 搭建高可用MongoDB集群(分片)

    MongoDB基础请参考:http://blog.51cto.com/kaliarch/2044423

    KaliArch
  • Python构建企业微信自动消息转发服务端

    目前有在项目分组,就小组成员中,微信群消息回复较多的情况下,想根据组来转发特定消息,包含文字、图片、语言等。在此只是自己实现仅供参考,可以根据自身需求修改更多功...

    KaliArch
  • 腾讯云 Serverless Component 原理解读与实战 | 在线分享第八期

    Tencent Serverless Hours 系列在线免费分享会(第八期)即将举办,届时将有腾讯云 Serverless Framework 产品经理杜佳...

    腾讯云serverless团队
  • 前端基于 Serverless 的开发探索 | 直播课

    前端开发已进入了深水区,产品端形态愈加丰富,公司密集上云的趋势在加速,为了保证海量的前端产品顺利上线,产研模式也在不断被探索。而如今大热的 Serverles...

    腾讯云serverless团队
  • 2020:我们处在一个什么样的技术浪潮当中?

    在软件架构领域,经历了从单体应用到 SOA 再到微服务; 在云计算领域,经历了从虚拟机到容器; 在数据库领域,从关系数据库到 NoSQL 再到 NewSQL...

    一个会写诗的程序员
  • Google: 如何做code review?

    ? 导语:Google 前几天公开了一篇谷歌的工程实践文档,内容跟 code review 相关,里面包含了 Google 工程师如何进行 code revi...

    腾讯技术工程官方号
  • 【译】Google 官方文章——如何去做coder review

    cr(Code review)主要目的在于确保Google 的代码库代码质量越来越好。而所有相关的工具与流程皆是因应这个目的而生。为达到此目的,势必需要做出一连...

    lhyt
  • 如何将 Web 框架迁移到 Serverless

    Serverless 通常翻译为「无服务架构」,是一种软件系统设计架构思想和方法,并不是一个开发框架或者工具。他的出现是为了让开发者更加关注业务的开发,而将繁...

    腾讯云serverless团队
  • ASP.NET Core 连接 GitLab 与 MatterMost 打造 devops 工具

    在现代化开发工具链里面就包含了自动化的通讯工具,而日志写代码我是推到 Gitlab 平台上,我今天听了郭锐大佬的分享之后,感觉我现在的团队的自动化做的远远不够。...

    林德熙

扫码关注云+社区

领取腾讯云代金券