文档首页> 函数工作流 FunctionGraph> 最佳实践> 定时开关华为公有云虚拟机
更新时间:2022-01-28 GMT+08:00
分享

定时开关华为公有云虚拟机

应用场景

当您需要在特定时间打开或者关闭华为公有云虚拟机时,可以考虑通过函数服务调用华为云ECS接口,定时开关虚拟机。

  • 开机节点:需要定时打开的虚拟机。
  • 关机节点:需要定时关闭的虚拟机。

前提条件

  1. 根据实际业务,获取定时开启华为公有云虚拟机的程序包或者定时关闭华为公有云虚拟机的程序包
  2. 创建委托EcsOperation,添加“ECS FullAccess”权限,请参考创建委托

创建委托

  1. 登录统一身份认证服务控制台。
  2. 在统一身份认证服务的左侧导航窗格中,选择“委托”页签,单击右上方的“+创建委托”。
    图1 创建委托
  3. 开始配置委托。
    • 委托名称:EcsOperation。
    • 委托类型:选择“云服务”。
    • 云服务:选择“函数工作流 FunctionGraph”。
    • 持续时间:选择“永久”。
    • 描述:填写描述信息。
  4. 单击“下一步”,进入委托选择页面,在右方搜索框中搜索“ECS FullAccess”权限并勾选。
    图2 选择权限
  5. 单击“下一步”,请根据业务需要选择权限的作用范围。

构建程序

  1. 创建功能函数。

    创建定时开启或者关闭华为公有云虚拟机的函数,上传定时开启华为公有云虚拟机的程序包定时关闭华为公有云虚拟机的程序包,如图3所示,并选择创建的委托EcsOperation。创建过程请参考创建函数

    图3 创建定时关闭华为公有云虚拟机的函数

  2. 设置环境变量。

    在“配置”页签配置环境变量,说明如表1所示。

    表1 环境变量说明

    环境变量

    说明

    region

    ECS所在的区域,如cn-north-4

    domain

    填写默认值:myhuaweicloud.com

    projectId

    ECS所在的Project ID

    whiteLists

    • 当定时开启华为公有云虚拟机时,填写无需开启的虚拟机名称,以逗号分隔
    • 当定时关闭华为公有云虚拟机时,填写无需关机的虚拟机名称,以逗号分隔

    环境变量的设置过程请参考使用环境变量,如图4所示。

    图4 设置环境变量
    • 本案例对函数执行的区域没有要求,如函数运行在北京一,想要开启或者关闭北京四的弹性云服务的虚拟机,只需要将projectId、region和domain更改为北京四区域的信息即可。
    • 如果开启或者关闭的虚拟机数量过多,则需要增大超时时间。
    • 表1中除domain和whiteLists以外的环境变量必须添加,domain和whiteLists根据实际情况选择添加或者不添加。不添加domain环境变量时,程序包中domain使用默认值:myhuaweicloud.com,whiteLists为无需开机/关机的ecs服务器名称以逗号分隔。
    • 环境变量中的{region}.{domain}组成ECS的终端节点Endpoint,如:cn-north-4.myhuaweicloud.com,具体Endpoint信息,请参考地区和终端节点

  3. 选择依赖包。

    在“代码”页签,添加“openstacksdk-1.0.6”依赖包,如图5所示。“openstacksdk-1.0.6”依赖包下载地址:华为云开发工具包(SDK)
    图5 添加依赖包

    添加依赖包详细操作可参考配置函数依赖

添加事件源

创建TIMER触发器,TIMER触发器配置如图6所示。
图6 创建TIMER触发器
分享:

    相关文档

    相关产品

close