AWS Lambda - 從傳入的 S3 Event 裡取得資訊

我們寫 Lambda Function的時候, 要實作 handler . 當事件驅動了這個 function 的時候, 相關資訊會經由 event 這個參數傳進來.

def handler_name(event, context): 
    ....
    return some_value  

接下來就探討一下, 我們會從 event 裡看到什麼樣的資訊.

準備動作

AWS Lambda 小練習: 氣溫資料爬蟲 為例, 我希望每當爬蟲把網頁抓回來丟上S3之後, S3的trigger 就能自動呼叫另一隻 Parser 用途的Lambda Function, . 所以至少我得知道來源是哪個檔案才能進行下一步.

以下是新增 trigger步驟:

對著你寫好的 parser lambda function, 新增一個由 S3 發動的 trigger. 這邊順便加了一些條件. 這邊只接受物件上傳 Put Event (其他的event …

more ...

定期觸發 AWS Lambda Function

AWS Lambda 是事件驅動的設計, 通常官方DEMO喜歡拿AWS S3做為例子, 當你上傳圖片之後, 就會產生Event , 就能驅動 Lambda 瞬間做出一張縮圖(請參考影片)

不過有時候,我們就是需要排程工作 ,例如:

  • log 檔案清理、搬移
  • 定期跑報表
  • 指定某個特定時間開EC2機器 (例如耶誕特賣起跑前的某個時間點,新增1000台EC2)

所以我們需要一個類似 cron 的服務, 定期的產生事件來啟動程式, 假如不用開一台EC2來跑那就更好了.

CloudWatch Events

AWS CloudWatch Events 提供了這樣的服務, 設定好 cron 之後, 將 target 指到你的 lambda function 便告完成.

ps: 這個服務似乎是完全免費, 在帳單上沒有看到這個項目.

--

注意事項

  • 時間精度沒那麼準: 以每分鐘觸發一次的情況來說, 一定會延遲幾秒~十幾秒.

  • cron …

more ...

初探 AWS Lambda

最近摸索了一陣子 AWS Lambda , 覺得這是個有潛力的新產品 , 所以來聊一下這個.

Lambda 是一種無伺服器(Serverless), 而且設計成事件驅動的運算服務. 白話一點來說, 你可以將你的 code 上傳, 當有事件產生(例如cronjob , 或者S3有新的檔案被上傳上來) , 你的code 就會在瞬間(零點幾秒以內)被叫起來執行. 由於你不用管 Server如何維護, 或者自動擴展之類的事, 所以叫做 Serverless ,這些都被處理了,我們只需搞定寫程式即可.

HelloWorld

AWS Lambda 目前支援 NodeJS,Java, Python2.7以及C# , 以 Python 為例, 這邊就是新Function的空白樣板, 程式進入點就在 lambda_handle(event,context)這邊.

--

按 Test 即可手動執行, 以下是執行結果:

--

以上是程式輸出, 最後記載了這程式執行的統計資料 …

more ...

AWS Certified SysOps Administrator - Associate 認證考試心得分享

AWS Sysops Administrator-Associate(ASOA)認證的跟之前考的那張 SA-Associate (ASA)的範圍差不多, 都必須要對 AWS 幾個重點服務摸熟,差別在於方向不太一樣:

  • ASA: 像是你手上有一些樂高積木, 你得知道如何適當的堆出一個 HA,彈性又省錢的架構。
  • SysOps: 跟ASA有些重疊, 題目很專注在在 Deploy / 維運 這些工作會碰到的狀況。有很多情境題, 題目經常是一長串英文, 例如不能連線、架構遇到瓶頸之類的請你解決.

考試概觀

  • 選擇題(單選/複選) , 80分鐘 , 55題(單選或複選題)
  • 考試報名費 150 美金, 網路刷卡報名.

AWS官網建議的一些重點:

  • 官方考試指南 BluePrint 連結

    1. Monitoring and Metrics 15%
    2. High Availability 15%
    3. Analysis …
more ...