您好,登錄后才能下訂單哦!
這篇文章主要介紹“怎么利用AWS Serverless服務Lambda來實現(xiàn)定時開關機”,在日常操作中,相信很多人在怎么利用AWS Serverless服務Lambda來實現(xiàn)定時開關機問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”怎么利用AWS Serverless服務Lambda來實現(xiàn)定時開關機”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
一、什么是AWS Lambda
AWS Lambda 是一項計算服務,可使您無需預配置或管理服務器即可運行代碼。您只需按消耗的計算時間付費 – 代碼未運行時不產(chǎn)生費用。借助 AWS Lambda,您幾乎可以為任何類型的應用程序或后端服務運行代碼,而且無需執(zhí)行任何管理。AWS Lambda 在可用性高的計算基礎設施上運行您的代碼,執(zhí)行計算資源的所有管理工作,其中包括服務器和操作系統(tǒng)維護、容量預置和自動擴展、代碼監(jiān)控和記錄。目前支持 Node.js、Java、C# 和 Python等語言。
二、場景描述
很多時候,對于測試和開發(fā)實例,為了節(jié)省花費,我們通常會選擇設置定時開關機。實現(xiàn)定時開關機的方式有很多:
1. AWSCLI + Crontab
2. AWS Lambda + Cloudwatch Event
3. 結合AWS API編寫程序(支持的語言C#,Python,Java等)
4. 第三方開發(fā)好的軟件
在今天我們主要介紹使用AWS Lambda和Cloudwatch Event來實現(xiàn)定時開關機.
三、原理分析
在這個案例中,我們主要創(chuàng)建兩個AWS Lambda函數(shù)(基于Python函數(shù))來定時開機和關機,同時,創(chuàng)建CloudWatch Events去觸發(fā),實現(xiàn)每天晚上關機和早上開機的功能。
四、AWS Lambda 配置
1. 打開AWS Lambda 控制臺,選擇“創(chuàng)建AWS Lambda函數(shù)”(第一次使用AWS Lambda需要需要選擇立即開始使用),在選擇函數(shù)界面,選擇“空白函數(shù)”
2. 配置觸發(fā)器界面,直接選擇下一步;
3. 配置函數(shù)界面,需要配置相關Lambda函數(shù)信息:
名稱:"StopEC2Instances"
描述:“stops EC2 instances every day at night”.
語言:Python 2.7.
4. 在Lambda 函數(shù)代碼編輯框,復制如下信息:
import boto3
# Enter the region your instances are in, e.g. 'us-east-1'
region = 'XX-XXXXX-X'
# Enter your instances here: ex. ['X-XXXXXXXX', 'X-XXXXXXXX']
instances = ['X-XXXXXXXX']
def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
ec2.stop_instances(InstanceIds=instances)
print 'stopped your instances: ' + str(instances)
5. Lambda 函數(shù)處理程序和角色,選擇“自定義角色”,會彈出新的界面 ;
6. 在創(chuàng)建IAM角色界面,角色選擇“自定義IAM角色”,角色名字,寫“l(fā)ambda_start_stop_ec2”或者其他,
7. 在查看策略文檔里main,復制如下策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": [
"logs:CreateLogGroup",
"logs:CreateLogStream",
"logs:PutLogEvents"
],
"Resource": "arn:aws:logs:*:*:*"
},
{
"Effect": "Allow",
"Action": [
"ec2:Start*",
"ec2:Stop*"
],
"Resource": "*"
}
]
}
8. 選擇允許.
9. 直接點擊“下一步”,創(chuàng)建函數(shù)即可。
11. 重復上面的步驟創(chuàng)建啟動實例的函數(shù),代碼如下:
import boto3
# Enter the region your instances are in, e.g. 'us-east-1'
region = 'XX-XXXXX-X'
instances = ['X-XXXXXXXX']
def lambda_handler(event, context):
ec2 = boto3.client('ec2', region_name=region)
ec2.start_instances(InstanceIds=instances)
print 'started your instances: ' + str(instances)
備注:名字和描述自己填,角色選擇之前創(chuàng)建的即可。
五、配置Cloudwatch Event
接下來,我們需要創(chuàng)建一個CloudWatch事件去觸發(fā)我們的AWS Lambda函數(shù)。
1. 進入Cloudwatch控制臺.
2. 選擇事件,規(guī)則,點擊“創(chuàng)建規(guī)則”
3. 事件源:選擇“計劃”,Crontab表達式:00 23 * * ? *
即設置每晚23點關機實例,關于更多關于表達式的格式,可以參考:https://docs.aws.amazon.com/zh_cn/console/cloudwatch/events/createrule
4. 目標欄,選擇“添加目標”,目標類型選擇“Lambda函數(shù)”,選擇我們創(chuàng)建的StopEC2Instances函數(shù),點擊配置詳細信息,以下可以參考:
文件名:"StopEC2Instances"
描 述:“stops EC2 instances every day at night”.
狀 態(tài):已啟用
5. 點擊創(chuàng)建規(guī)則即可.
按照同樣的步驟,創(chuàng)建另外的規(guī)則在開啟實例的配置。
到此,關于“怎么利用AWS Serverless服務Lambda來實現(xiàn)定時開關機”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續(xù)學習更多相關知識,請繼續(xù)關注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>
免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。