AWS实现定时任务-Lambda+EventBridge
生活随笔
收集整理的這篇文章主要介紹了
AWS实现定时任务-Lambda+EventBridge
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
概述:
????????我們要在aws上實現定時任務,例如:操作aws的ec2實例實現定時開關機需求,如何實現?最簡便的方法是使用aws的lambda函數服務+EventBridge定時器服務
實現辦法:
1.登錄aws控制臺,搜索lambda服務:
?2.點擊進去之后創建新函數:
?3.編輯函數名稱(自定義,使用英文),運行語言,基本常用的python,ruby,nodejs,java,go等全部支持,選擇自己擅長的語言即可:
?4.權限這塊需要注意下,因為登錄的賬號角色不一定有aws某個服務的權限,例如有lambda的權限,但是你要操作ec2實例,但是沒有ec2實例的權限,這個到了test的時候會有日志,到時候具體問題具體分析,我們這里選擇創建新角色:
?5.創建完之后編寫lambda函數的代碼-我們以啟動ec2實例為例子,代碼如下:
import boto3# Enter the region your instances are in, e.g. 'us-east-1'region = 'ap-test' ## ec2實例所在區域# Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']instances = ['i-0424dddddd1222'] ## 實例iddef lambda_handler(event, context):ec2 = boto3.client('ec2', region_name=region)ec2.start_instances(InstanceIds=instances)print('啟動ec2實例: ' + str(instances))?6.編寫完點擊deploy保存代碼,然后點擊配置:
?7.在配置里修改點擊編輯,修改3個重要的參數,修改完之后點擊保存:
重要:(不修改會導致日志報各種奇怪的錯)
內存修改為:1024M
短暫存儲修改為:512M
超時時間修改為:15分鐘
角色選擇4里自建或者已有權限的角色
?8.返回代碼編輯部分,已保存代碼,點擊Test測試代碼是否可以正常運行:
目前此ec2實例處于關機狀態,測試是否可以通過lambda函數實現操作它開機
?函數顯示測試成功,返回ec2服務頁面查看實例是否啟動:
?實例也正常啟動了,證明lambda函數已生效:
?9.在EventBridge里添加定時任務:
?10.創建新規則:
?如果是長期定時的周期性任務選擇計劃類
?舉例:每天的12:20執行任務
注意:
時間選擇本地時間,否則會導致與實際時間不相符
因為aws ec2的時區是utc時間,所以其實實際情況是:你想要當前上午12點20執行任務,你必須設置本地時區時間并且往前推算8小時,也就是12點20的任務,cron里輸入 20? 04 * * ? *?
11.點擊下一步保存(最好是找個調試完的就近時間測試下)
12.創建完之后可以看到在EventBridge定時服務里已經生效
?13.也可以在cloudwatch里去查看定時任務的執行日志,?去判斷定時任務是否每天正常在運行
總結
以上是生活随笔為你收集整理的AWS实现定时任务-Lambda+EventBridge的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java毕业设计博客管理系统Mybati
- 下一篇: html图片播放器,imgplay-基于