如何进行Serverless + CVM的实战分析

本篇文章为大家展示了如何进行Serverless + CVM的实战分析,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。

项目背景

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

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

项目编写

1. 根据模版创建项目

如何进行Serverless + CVM的实战分析

2. 填写项目名称

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

如何进行Serverless + CVM的实战分析

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

编写代码

1. 代码程序

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

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

2. 本地测试

在本地 IDE 进行运行测试

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

上传项目到云端

1. 上传到云端进行测试

2. 云端查看项目

云端测试

查看运行日志

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

上述内容就是如何进行Serverless + CVM的实战分析,你们学到知识或技能了吗?如果还想学到更多技能或者丰富自己的知识储备,欢迎关注行业资讯频道。