從前一篇文章中,可以看出 Lambda 是一種以事件來觸發的架構
理論上因為 RESTful API 也是以事件觸發的,所以應該也有機會變成 Lambda
不過 JAX-RS 的結構又跟 Lambda 的結構不太一樣,所以到底行不行呢?
Software entities (class, modules, functions, etc.) should be open for extension, but closed for modification. Junior programmers create simple solutions to simple problems. Senior programmers create complex solutions to complex problems. Great programmers find simple solutions to complex problems. 註1:本部落格的範例程式碼在 2015 年以前的文章中,大多是以全型空白做縮排。如需服用,請自行用文字編輯器的取代功能把全型空白取代成半型空白。
- Bertrand Meyer
- Charles Connell
註2:本部落格的內容授權請參閱部落格底部的授權宣告。
2017年8月17日 星期四
透過 AWS Lambda 開發 Serverless Framework(二):開發 RESTful API
2017年8月16日 星期三
eclipse 在 Windows 10 發生使用 git 就無回應的問題
最近突然 eclipse 發生了只要使用任何 git 功能,eclipse 就會陷入無回應的狀況
困擾了一段時間,在經過有點努力的搜尋後,終於找到問題的原因和解法了!(歡呼貌)
2017年8月2日 星期三
透過 AWS Lambda 開發 Serverless Framework(一):接收 Kinesis 訊息
AWS Lambda 是 AWS 發表並大力主打的 Serverless 服務之一。
在談怎麼使用 Lambda 之前,也許可以先談談為何要使用 Lambda?
2017年7月27日 星期四
無法在 GoDaddy 設定 @ 的 CNAME
因為網站是用 WordPress 架在 AWS 上,所以網域應該要用 CNAME 導去 AWS 的位址
本來很單純想說網域(假設是 example.com)想要自動轉去 https://www.example.com
設定上就是加上 @ 的 CNAME
但結果在 GoDaddy 上就是無法設定,它一直顯示紀錄已存在。
花了一些時間查詢以後,雖然細節有點看不太懂,不過總之原因好像是因為 CNAME 其實會跟其他像是 TXT、MX 之類的紀錄重疊 [1-2]
所以某個網域或者子網域如果要設定 CNAME 的話,這個網域或子網域應該要不存在任何除了 A 以外的紀錄
否則會導致紀錄之間衝突,因而產生像是 [3] 的結果,某些既存的其他服務會因為被 CNAME 覆蓋而無效了。
另外 [2] 的回覆也有提到,DNS 的規格文件 RFC 1034 的 3.6.2 小節中,有以下的具體描述。
A CNAME RR identifies its owner name as an alias, and specifies the corresponding canonical name in the RDATA section of the RR. If a CNAME RR is present at a node, no other data should be present; this ensures that the data for a canonical name and its aliases cannot be different. This rule also insures that a cached CNAME can be used without checking with an authoritative server for other RR types.
而這個問題要解決的話,以 GoDaddy 來說,可以去設定它免費提供的「網域轉址」
就可以把網域(example.com)自動導向到某個自行指定的網址了。
不過實際實驗時,好像網域轉址只對 HTTP 有效,HTTPS 似乎無效就是了。
也就是說,設定後 http://example.com 會有自動轉址的效果,但是 https://example.com 則沒有反應。
參考資料
2017年7月25日 星期二
2017年7月23日 星期日
使用 Django 建立網站(二):建立第一個自定義的頁面
在前一篇當中,我們已經產生了一個叫做 myweb 的專案,接著要建立一個應用程式(App)。
這部份基本上也可以參考 Django 官方的教學文件 [1]。
2017年7月16日 星期日
在 Eclipse 使用 Python 虛擬環境開發 Python
最近再度開始學習 Python,然後看到不少 Python 套件的官方文件提到虛擬環境
因此來紀錄一下,以 Java 開發者的角度來看 Python 虛擬環境相關的基本知識。
2017年7月15日 星期六
在 Ubuntu 14.04 安裝 venv
在 Ubuntu 14.04 上,想要用下述指令建立虛擬環境時,出現沒有安裝 venv 的錯誤訊息
root@default:/# python3 -m venv myvenv
The virtual environment was not created successfully because ensurepip is not
available. On Debian/Ubuntu systems, you need to install the python3-venv
package using the following command.
apt-get install python3-venv
You may need to use sudo with that command. After installing the python3-venv
package, recreate your virtual environment.
但依照訊息的描述去安裝 python3-venv 時,又出現找不到這個 package 的錯誤。
參考 [1] 的作法,實際上好像應該安裝的套件是 python3.4-venv
apt-get install python3.4-venv
參考資料
2017年7月6日 星期四
使用 ssmtp 連接郵件伺服器時的驗證問題
同事在使用 ssmtp 連接 Office365 時,Office365 的郵件伺服器一直回覆下述的訊息
535 5.7.3 Authentication unsuccessful
花了一段時間研究後,發現問題其實是在於登入的密碼包含像是 # 這種特殊符號
導致 ssmtp 並沒有送出正確的密碼,因而造成驗證錯誤。
由於目前這仍然是個 open issue,因此也只能紀錄一下,然後去改密碼了 XD。