用 10 分鐘部署專案到 AWS Lambda

Screen Shot 2018-10-24 at 9.37.49 AM 看到這標題也許非常聳動,也可能覺得不可思議,今天來探討如何將專案直接部署到 AWS Lambda 並且自動化將 API Gateway 設定完成。當然要做到完全自動化,必須要使用一些工具才能完成,本篇將介紹由 TJ 所開發的 apex/up 工具,如果您不熟悉 EC2 也不太懂 Command line 操作,本文非常適合您,不需要管理任何 EC2 機器,也不需要在熟悉任何 Linux Command 就可以完成簡單的專案部署。首先為什麼我選擇 apex/up 而不是選擇 apex/apex,原因是使用 up 工具,您的專案是不用更動任何程式碼,就可以將專案直接執行在 AWS Lambda,那 API Gateway 部分也會一並設定完成,將所有 Request 直接 Proxy 到該 Lambda function。如果您希望對於 AWS Lambda 有更多進階操作,我會建議您用 apex/apexServerless。您可以想像使用 up 就可以將 AWS Lambda 當作小型的 EC2 服務,但是不用自己管理 EC2,現在 up 支援 Golang, Node.js, Python 或 Java 程式語言,用一行 command 就可以將專案部署到雲端了。 Continue reading “用 10 分鐘部署專案到 AWS Lambda”

Go 語言 1.11 版本推出 go module

Go-Logo_Blue 本篇來聊聊 Go 語言在 1.11 版本推出的 新功能,相信大家也許還不知道此功能是做什麼用的,我們來回顧看看在初學 Go 語言的時候,最令人困擾的就是 GOPATH,所有的專案都必須要在 GOPATH 底下開發,然而在更久前還沒有 Vendor 時候,兩個專案用不同版本的同一個 Package 就必須要使用多個 GOPATH 來解決,但是隨著 Vendor 在 1.5 版的推出,解決了這問題,所以現在只要把專案放在 GOPATH 底下,剩下的 Package 管理都透過 Vendor 目錄來控管,在很多大型開源專案都可以看到把 Vendor 目錄放入版本控制已經是基本的 Best Practice,而 go module 推出最大功能用來解決 GOPATH 問題,也就是未來開發專案,隨意讓開發者 clone 專案到任何地方都可以,另外也統一個 Package 套件管理,不再需要 Vendor 目錄,底下舉個實際例子來說明。 Continue reading “Go 語言 1.11 版本推出 go module”