zoukankan      html  css  js  c++  java
  • 用函数改函数配置?定时预置这样搞!

    预置并发支持并发实例按配置预先启动,而不是在接受请求时才启动。您可通过此功能,为函数的指定版本设定预置并发额度。通过配置预置并发,可预先进行计算资源的准备,降低冷启动、运行环境初始化及业务代码初始化引起的耗时。

    预置并发功能开启内测以来,受到了火热的关注,部分用户抢到了内测资格,并为我们提了不少宝贵的建议,在此感谢大家的关注与支持。

    其中有一条建议是:”明天早上十点开启活动,我需要提前预置很多并发,可是我很担心自己 9 点忘记配置(睡过了),有没有什么办法设个定时呢?“

    当然有!作为熟练使用 Serverless 的小能手,我们今天就用云函数改云函数配置,实现定时配置预置并发。

    预置美妙,睡个懒觉!

    一、创建函数

    在云函数的控制台【新建】函数,在搜索框搜索 “预置”,选中定时预置 Demo,点击下一步,完成创建。

    函数控制台地址:https://console.cloud.tencent.com/scf/list

    打开函数的代码编辑页面,我们可以看到其中的代码是用腾讯云的 Python SDK 修改函数配置(在云函数的 API 文档中使用 API Explorer 工具即可生成调用代码)。

    现在,这段代码具备了设置预置并发的能力,但是它还没有获得授权。这就像一个小朋友学会了使用密码锁,但是 ta 还不知道房门的密码是什么。

    有 2 种办法进行授权:

    第一种是长期密钥,在控制台「访问管理」的「访问密钥」中可以获得账号的密钥,代替代码中的 os.environ.get('TENCENTCLOUD_SECRETID')os.environ.get('TENCENTCLOUD_SECRETKEY') ,并且去掉 os.environ.get('TENCENTCLOUD_SESSIONTOKEN') 参数。

    这种方法在代码中写了明文的密钥,有一定的安全风险,所以我们这里采用第二种办法 — 绑定运行角色。

    二、绑定运行角色

    绑定运行角色的关键,是把一个有 QcloudSCFFullAccess 策略的角色绑定到这个函数上。可以在现有角色中新增策略,也可以新建一个角色进行绑定,这里我们新建一个角色。

    1. 在 「函数管理 >> 函数配置」页,点击右上方的 「编辑」,进入编辑状态,启用「运行角色」,并点击进入「新建运行角色」页面。
    1. 选择「云函数(SCF)」(这里可以 Ctrl+F 搜索一下 scf,大约在右下角),「下一步」。
    1. 选择「QcloudSCFFullAccess 策略」,随后「填写角色名称」,即可完成角色的创建。

    回到 SCF 的控制台,在运行角色中选择刚刚创建 scf_full_role 后,点击「完成」即可。

    三、配置定时触发器

    接下来,就是本篇文章的关键:在拿到钥匙并掌握开门的方法后,我们该如何定时?

    在「触发管理」页面,我们创建一个新的定时触发器,由于这里创建后无法修改,所以我们要一次填正确所需要的配置。

    3.1 设置触发周期

    定时触发器的时间配置采用的是 cron 表达式,七个必须字段分别代表着秒、分钟、小时、日、月、星期和年。详细介绍可以查看云函数的文章,这里我们列举一些常见的用例:

    0 55 19 24 3 * 2021 表示在2021年3月24日19点55分钟触发
    0 0 2 1 * * * 表示在每月的1日的凌晨2点触发
    0 15 10 * * MON-FRI * 表示在周一到周五每天上午10:15触发
    0 0 10,14,16 * * * * 表示在每天上午10点,下午2点,4点触发
    0 */30 9-17 * * * * 表示在每天上午9点到下午5点每半小时触发
    0 0 12 * * WED * 表示在每个星期三中午12点触发
    

    可以根据业务的需要进行灵活的配置,建议至少提前半个小时或一个小时启动。

    3.2 预置的信息

    在定时触发器的「附加信息」中,我们需要填写所需要预置的函数及版本信息。

    Qualifier 为函数的版本号,VersionProvisionedConcurrencyNum 为所需要预置的并发值,若填 0 则代表着取消预置。

    {
        "Region": "ap-beijing",
        "FunctionName": "your_function_name",
        "Namespace": "your_namespace",
        "Qualifier": "2",
        "VersionProvisionedConcurrencyNum": 5
    }
    

    在我们这里创建两个触发器,分别负责启动预置并发和关闭预置并发。

    • 设置 「启动预置并发」的配置信息 - 填写在「附加信息」中:
    # cron 表达式
    0 55 19 24 3 * 2021
    
    # 附加信息
    {
        "Region": "ap-beijing",
        "FunctionName": "your_function_name",
        "Namespace": "default",
        "Qualifier": "2",
        "VersionProvisionedConcurrencyNum": 5
    }
    
    • 设置「关闭预置并发」的配置信息 - 填写在「附加信息」中;
    # cron 表达式
    0 00 23 24 3 * 2021
    
    # 附加信息
    {
        "Region": "ap-beijing",
        "FunctionName": "your_function_name",
        "Namespace": "default",
        "Qualifier": "2",
        "VersionProvisionedConcurrencyNum": 0
    }
    

    配置后启动定时触发器,定时的预置并发就配置好了。

    如果想要确认预置并发是否正常配置,可以在调用日志中查看 对应时间 的记录,如果看到日志中正确返回了 RequestID,则证明预置并发已经成功配置或关闭配置。

  • 相关阅读:
    7.21 高博教育 数组 内存
    【基础扎实】Python操作Excel三模块
    PAT 甲级 1012 The Best Rank
    PAT 甲级 1011  World Cup Betting
    PAT 甲级 1010 Radix
    链式线性表——实验及提升训练
    循环程序设计能力自测
    链表应用能力自测
    PAT 甲级 1009 Product of Polynomials
    1008 Elevator (20分)
  • 原文地址:https://www.cnblogs.com/serverlesscloud/p/14610769.html
Copyright © 2011-2022 走看看