2018年10月3日 星期三

LINE BOT 匯率提醒機器人(1/3) - 使用GCP架設Linux server

最近開始準備去日本的滑雪計畫, 考慮到滑雪行程會用到不少日幣, 但是又很懶的每天開銀行網站看, 那就乾脆來寫個機器人每天早上自動推播今日匯率吧

事前準備

  • 網站server一台
    必須要有固定IP且可由Internet連結進來, 若讀者自有server, 可直接跳到LINE BOT 匯率提醒機器人(2/3)
    筆者這邊由於預算有限, 這次用GCP(Google Cloud Platform) Always Free方案架站(限定狀況下免費!)
  • Domain name
    可以找各大DNS廠商購買, 筆者是用過去在GoDaddy買的domain name處理。沒有domain name的人可以Google找找免費的DNS來用
  • SSH連線軟體
    筆者使用macOS內建的ssh指令連線到GCP上, Windows上的話首推應該就Putty
注意: Always Free方案有區域、硬碟空間、網路流量和其他..., 等限制, 目前(2018/10/3)使用是有機會免費, 但使用前請一定要自行確認是否符合Always Free, 若被收費筆者一概不負任何責任......。 詳細請參考 一律免費用量限制


開發重點

  1. 使用GCP服務中的GCE(Google Compute Engine)建立一台Linux server
  2. 使用GCE服務架設網站server
  3. 加入HTTPS支援 - 使用Let’s Encrypt免費SSL憑證
  4. 註冊LINE developers, 並申請LINE messaging API
  5. 實作LINE Bot傳送匯率到LINE群組的頻道上

GCP架設Linux server - 在GCP上建立新專案

  1. 使用Google帳號開通GCP服務, 此步驟請跟著GCP網頁的提示申請, 最後綁定完信用卡後即可進入GCP的控制頁面(如下圖)
  2. 點擊畫面上的「選取專案」後接著點選右上角的「新增專案」

  3. 填寫專案名稱, 接著會看到右上角的通知(下圖中紅框有數字的地方)提示正在建立專案

  4. 中場休息, GCP建立專案會需要一點時間

GCP架設Linux server - 在GCE上建立VM

  1. 再次點擊「選取專案」, 並選擇剛剛建立的專案
  2. 建立VM執行個體, 這邊建立的VM就如同用VirtualBox, VirtualPC或VMWare建立出來的VM一樣, 可以當作一台電腦主機來看待
  3. 中場休息, GCP啟動Google Computer Engine(GCE)需要些時間, 可去喝杯茶小憩片刻
  4. 點選下圖的「建立」並在各個欄位中填上與下圖相同的設定



    注意: 根據目前的Always Free方案限制, 區域請一定要是us-east1, us-west1, and us-central1其中一個, 硬碟請在30GB內
  5. 中場休息......, 建立一台新的VM需要一點時間, 出門買個咖啡喝休息一下
  6. VM建立完成後請點擊剛建立完成的instance-1
  7. 點擊畫面上SSH選單的在「瀏覽器視窗中開啟」
  8. 建立成功~ 恭喜你已連上server, 現在可以下一些Linux指令來玩玩看

GCP架設Linux server - 透過自己電腦上的ssh連上Linux server


身為一個開發者有自己習慣的ssh軟體是很正常的, 因此以下將說明怎麼使用自己的ssh軟體連上GCE上的VM

  1. 建立ssh的公鑰檔id_rsa.pub與私鑰檔id_rsa, 若已經有此兩個檔案的讀者可略過此步驟
    指令如下
    #建立id_rsa與id_rsa.pub #已有此兩個檔案的使用者請千萬不要執行以下指令, 避免覆蓋掉舊的檔案 shiun@Shiun:~$ ssh-keygen -t rsa #中間出現的選項若沒有特殊目的則可以全部按enter使用預設值即可 shiun@Shiun:~$ cat .ssh/id_rsa.pub ssh-rsa AAXXXXnX shiun@Shiun
  2. 開啟GCE的「中繼資料」頁面並進入「SSH金鑰頁面」
  3. 並將SSH金鑰也就是id_rsa.pub中ssh-rsa開頭到user@xxxx結尾的全部文字複製貼到SSH金鑰頁面上
  4. 回到GCE頁面找到Linux server的IP位置
  5. 使用終端機介面輸入ssh指令連線到GCE上的Linux server
  6. 收工~

參考資料

沒有留言:

張貼留言