溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么利用AWS Serverless服務Lambda來實現(xiàn)定時開關機

發(fā)布時間:2021-08-30 19:10:58 來源:億速云 閱讀:183 作者:chen 欄目:云計算

這篇文章主要介紹“怎么利用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>

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI