使用 API Gateway製作一個股價查詢API

Amazon API Gateway 是一種全受管的服務,可讓開發人員輕鬆發佈、維護、監控和保護任何規模的 API. 它的角色有點像是我們一般的網頁程式中, 拿掉後段那些商業邏輯、查詢資料庫、字串處理所剩下的部份. 像是規劃 API網址格式、接傳參數處理, 存取控制這類的任務.

Serverless 架構的概念最近漸漸興起, 由於管理基礎建設始終就是需要心力去照顧的工作, 所以無伺服器架構這種新概念, 不用再管理Server, EC2也不開了, 那或許能再解放一些生產力出來, 讓大家的注意力更集中在有價值的地方.

--

初探 API Gateway

最近在玩 API Gateway 與後端串接 Lambda 吃了一些苦頭, 由於網路上能找到的文件資源大多以 NodeJS居多, 使用 Python 的就比較辛苦些.

以下推薦兩個連結, 能協助使用這樣組合的人迅速通過新手村的考驗:

more ...

使用AWS Lambda 製作一個氣溫資料爬蟲

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 …

more ...