AWS Lambda 玩了一個禮拜稍微摸熟特性之後, 就想找個小題目來做. 由於以前對於寫網路爬蟲有些經驗, 所以決定改用 Lambda來試試,資料是取材於中央氣象局的即時氣溫資料.

範例程式下載

github傳送門

程式說明

  • my_crawler_tw_temperature_downloader.py : 下載氣溫資料, 並將原始資料暫存於S3
  • my_crawler_tw_temperature_parser.py : 解析資料後,將結果存放於 DynamoDB
  • my_crawler_tw_temperature_process_data.py : 定期將DynamoDB的資料撈出來成為JSON檔案, 也就是上面曲線圖讀進來的資料

  • 前端繪圖Lib是 Flot

事件驅動來源

  • my_crawler_tw_temperature_downloader.py : 每10分鐘執行一次
  • my_crawler_tw_temperature_parser.py : S3產生Event 呼叫本程式(因為上面downloader將網頁存檔到S3)
  • my_crawler_tw_temperature_process_data.py : 每1分鐘執行一次

準備

  • S3:
  • 開一個新的bucket 準備放置許多抓下來的網頁.
  • 輸出的JSON網頁也會放於此, 由於 AJAX跨網域讀資料有些限制, 所以你要對Bucket的CORS做設定,允許其他網域來取資料.

  • DynamoDB 先建好以下Table: Table : tw_temperature Primary Key : area_id(string) + time_stamp (Number)

參考資料

後記

以後會寫幾篇關於開發過程中遇到的一些疑難雜症. 這陣子從AWS官方Lambda文件學到的東西特別多, 建議可以從這邊入門開始.