AWS中的Lambda

1.Lambda是什么?

  • 在EC2中我們還需要管理整個(gè)虛擬機(jī)症虑,而到了Lambda缩歪,我們僅需要將代碼上傳,就可以按照配置來(lái)運(yùn)行谍憔,此時(shí)這個(gè)服務(wù)器環(huán)境是由AWS來(lái)管理的匪蝙,我們只需要關(guān)心代碼。所以Lambda又被稱為Serverless Computer

  • AWS Lambda 原生支持 Java习贫、Go逛球、PowerShell、Node.js苫昌、C#颤绕、Python 和 Ruby 代碼,并提供 Runtime API祟身,可以使用任何其他編程語(yǔ)言來(lái)編寫函數(shù)奥务。

2.什么時(shí)候使用Lambda呢?

Lambda比較適合運(yùn)行在事件響應(yīng)中需要執(zhí)行的代碼(并不是說(shuō)只能是這些場(chǎng)景袜硫,而是這些場(chǎng)景的Lambda優(yōu)先級(jí)比較高)氯葬,舉個(gè)例子:

  • 每五分鐘/每天某個(gè)時(shí)間點(diǎn)需要從數(shù)據(jù)庫(kù)里查數(shù)據(jù)并且發(fā)到其他地方的場(chǎng)景

  • 與CloudWatch集成,當(dāng)超出某個(gè)閾值時(shí)婉陷,可以通過(guò)Alarm發(fā)到SNS Topic帚称,然后通過(guò)Lambda發(fā)到郵箱、手機(jī)等地方

  • 當(dāng)有圖片上傳到S3上秽澳,我們可以通過(guò)lambda來(lái)制作每一張圖片的縮略圖

舉個(gè)不是事件觸發(fā)的例子:

  • 因?yàn)長(zhǎng)ambda是可以動(dòng)態(tài)擴(kuò)展的闯睹,我們可以把一些流量(不確定/變化大)的服務(wù)也讓Lambda來(lái)執(zhí)行,這樣我們就可以不用費(fèi)心地去管理EC2的擴(kuò)容了担神。

需要注意的是楼吃,Lambda應(yīng)當(dāng)以無(wú)狀態(tài)的樣式進(jìn)行編寫,即應(yīng)假設(shè)與底層計(jì)算基礎(chǔ)設(shè)施無(wú)密切關(guān)系,用人話來(lái)理解的話,每次Lambda函數(shù)由事件觸發(fā)時(shí)所刀,我們應(yīng)當(dāng)假設(shè)其都會(huì)在全新的環(huán)境中調(diào)用它, 而其應(yīng)當(dāng)無(wú)法訪問(wèn)上一個(gè)事件的執(zhí)行上下文衙荐。

注意是上文中的假設(shè),事實(shí)上如果前一次的請(qǐng)求修改了某個(gè)全局變量浮创,下一次請(qǐng)求過(guò)來(lái)如果還是被路由到這一個(gè)Lambda運(yùn)行的虛擬機(jī)上忧吟,這個(gè)全局變量將不是初始值,虛擬機(jī)緩存了這個(gè)值斩披,這樣一來(lái)就大大加大了開發(fā)的難度溜族,因?yàn)槲覀儾恢浪降讜?huì)不會(huì)去走原來(lái)的那個(gè)虛擬機(jī),所以在這里垦沉,我們建議以無(wú)狀態(tài)的樣式進(jìn)行開發(fā)煌抒。

3.舉個(gè)栗子

  • Lambda有很多種上傳代碼的方式,在這里我們介紹一種項(xiàng)目中比較常用的厕倍,在本地開發(fā)完成后上傳jar包運(yùn)行

代碼來(lái)自:https://github.com/awsdocs/aws-lambda-developer-guide

這里再多說(shuō)一句寡壮,Youtube和Github真的是一個(gè)特別好去學(xué)習(xí)不了解的技術(shù)的平臺(tái),發(fā)揮起來(lái)吧讹弯。

1.首先需要引入aws-lambda-java-core包况既,這個(gè)是必不可少的.

截屏2021-02-17 上午1.30.48

2.實(shí)現(xiàn)上面導(dǎo)入的包中這個(gè)包中RequestHandler<I, O>接口,這是Lambda會(huì)通過(guò)這個(gè)接口的實(shí)現(xiàn)方法作為入口來(lái)調(diào)用我們的代碼组民。

在這個(gè)例子中棒仍,我們會(huì)以HandlerInteger類作為我們要執(zhí)行的代碼。

截屏2021-02-17 上午1.30.33

3.將項(xiàng)目打包成Jar包臭胜。

截屏2021-02-17 上午1.33.15

4.我們可以看到可以有多種部署的方式莫其,還有一些案例代碼,這邊我們選擇第一個(gè)耸三,從頭開始乱陡,并且將環(huán)境選擇為Java8,圖中的執(zhí)行角色有基本的功能吕晌,會(huì)將我們的執(zhí)行結(jié)果記錄到CloudWatch的log group里

截屏2021-02-17 上午1.36.59

5.將我們的Jar包上傳到Lambda上(Jar包中有我們自己的代碼蛋褥,也有這些代碼運(yùn)行的依賴),這里有個(gè)tips就是如果Jar大于10MB睛驳,需要考慮使用先上傳到S3再轉(zhuǎn)到Lambda。

注意下面的紅框框膜廊,在這里我們需要指定Lambda執(zhí)行的入口乏沸,格式為{package name}.{class name}::{method name}

圖中我們的包名為example,類名為HandlerInteger爪瓜,實(shí)現(xiàn)的方法名為handleRequest蹬跃,所以是example.HandlerInteger::handleRequest

截屏2021-02-17 上午2.22.30

6.上傳并且設(shè)置完成后,就可以來(lái)測(cè)試我們的Lambda了,這里我們傳的值是Integer蝶缀,所以直接輸數(shù)字就好丹喻,其他的一些對(duì)象可以用Json表示。

截屏2021-02-17 上午2.27.59

7.在這里我們可以看到執(zhí)行的一些參數(shù)翁都,上面的白框框是我們的返回結(jié)果碍论,因?yàn)榉祷氐氖?code>getRemainingTimeInMillis,所以基本上就是這個(gè)數(shù)值左右的數(shù)字柄慰,下面是一些日志的輸出鳍悠,我們可以在AWS CloudWatch的Log group里看到。

截屏2021-02-17 上午2.29.18

截屏2021-02-17 上午2.32.36
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末坐搔,一起剝皮案震驚了整個(gè)濱河市藏研,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌概行,老刑警劉巖蠢挡,帶你破解...
    沈念sama閱讀 216,402評(píng)論 6 499
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異凳忙,居然都是意外死亡业踏,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,377評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門消略,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)堡称,“玉大人,你說(shuō)我怎么就攤上這事艺演∪唇簦” “怎么了?”我有些...
    開封第一講書人閱讀 162,483評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵胎撤,是天一觀的道長(zhǎng)晓殊。 經(jīng)常有香客問(wèn)我,道長(zhǎng)伤提,這世上最難降的妖魔是什么巫俺? 我笑而不...
    開封第一講書人閱讀 58,165評(píng)論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮肿男,結(jié)果婚禮上介汹,老公的妹妹穿的比我還像新娘。我一直安慰自己舶沛,他們只是感情好嘹承,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,176評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著如庭,像睡著了一般叹卷。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 51,146評(píng)論 1 297
  • 那天骤竹,我揣著相機(jī)與錄音帝牡,去河邊找鬼。 笑死蒙揣,一個(gè)胖子當(dāng)著我的面吹牛靶溜,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播鸣奔,決...
    沈念sama閱讀 40,032評(píng)論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼墨技,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼!你這毒婦竟也來(lái)了挎狸?” 一聲冷哼從身側(cè)響起扣汪,我...
    開封第一講書人閱讀 38,896評(píng)論 0 274
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎锨匆,沒(méi)想到半個(gè)月后崭别,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,311評(píng)論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡恐锣,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,536評(píng)論 2 332
  • 正文 我和宋清朗相戀三年茅主,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片土榴。...
    茶點(diǎn)故事閱讀 39,696評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡诀姚,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出玷禽,到底是詐尸還是另有隱情赫段,我是刑警寧澤,帶...
    沈念sama閱讀 35,413評(píng)論 5 343
  • 正文 年R本政府宣布矢赁,位于F島的核電站糯笙,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏撩银。R本人自食惡果不足惜给涕,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,008評(píng)論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望额获。 院中可真熱鬧够庙,春花似錦、人聲如沸抄邀。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)撤摸。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間准夷,已是汗流浹背钥飞。 一陣腳步聲響...
    開封第一講書人閱讀 32,815評(píng)論 1 269
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留衫嵌,地道東北人读宙。 一個(gè)月前我還...
    沈念sama閱讀 47,698評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像楔绞,于是被迫代替她去往敵國(guó)和親结闸。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,592評(píng)論 2 353

推薦閱讀更多精彩內(nèi)容