您好,登錄后才能下訂單哦!
今天給大家介紹一下怎樣用函數改函數配置實現定時配置預置并發。文章的內容小編覺得不錯,現在給大家分享一下,覺得有需要的朋友可以了解一下,希望對大家有所幫助,下面跟著小編的思路一起來閱讀吧。
預置并發支持并發實例按配置預先啟動,而不是在接受請求時才啟動。您可通過此功能,為函數的指定版本設定預置并發額度。通過配置預置并發,可預先進行計算資源的準備,降低冷啟動、運行環境初始化及業務代碼初始化引起的耗時。
預置并發功能開啟內測以來,受到了火熱的關注,部分用戶搶到了內測資格,并為我們提了不少寶貴的建議,在此感謝大家的關注與支持。
其中有一條建議是:”明天早上十點開啟活動,我需要提前預置很多并發,可是我很擔心自己 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
策略的角色綁定到這個函數上。可以在現有角色中新增策略,也可以新建一個角色進行綁定,這里我們新建一個角色。
在 「函數管理 >> 函數配置」頁,點擊右上方的 「編輯」,進入編輯狀態,啟用「運行角色」,并點擊進入「新建運行角色」頁面。
選擇「云函數(SCF)」(這里可以 Ctrl+F 搜索一下 scf,大約在右下角),「下一步」。
選擇「QcloudSCFFullAccess
策略」,隨后「填寫角色名稱」,即可完成角色的創建。
回到 SCF 的控制臺,在運行角色中選擇剛剛創建 scf_full_role
后,點擊「完成」即可。
接下來,就是本篇文章的關鍵:在拿到鑰匙并掌握開門的方法后,我們該如何定時?
在「觸發管理」頁面,我們創建一個新的定時觸發器,由于這里創建后無法修改,所以我們要一次填正確所需要的配置。
定時觸發器的時間配置采用的是 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點觸發
可以根據業務的需要進行靈活的配置,建議至少提前半個小時或一個小時啟動。
在定時觸發器的「附加信息」中,我們需要填寫所需要預置的函數及版本信息。
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
,則證明預置并發已經成功配置或關閉配置。
以上就是怎樣用函數改函數配置實現定時配置預置并發的全部內容了,更多與怎樣用函數改函數配置實現定時配置預置并發相關的內容可以搜索億速云之前的文章或者瀏覽下面的文章進行學習哈!相信小編會給大家增添更多知識,希望大家能夠支持一下億速云!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。