無伺服器實作入門 - 使用 AWS Lambda 和 DynamoDB 實作無伺服器 CRUD API

(Updated: April 5, 2022 ) 在上一篇文章,已經介紹如何安裝 Serverless Framework 以及註冊 AWS 帳號,接下來要組合使用AWS Lambda 和 DynamoDB 並透過 API gateway 的介導讓外部進行存取,實作一個記事本後端 CRUD API。 用預設模板(template)建立服務 俗話說「萬丈高樓平地起」,建立一個無伺服器服務就從模板開始。 在create命令加上--help列出幫助訊息,當中會列出有哪些預設模板可以用,不同的模板有不同的起始程式碼和設定。 serverless create --help --template 透過預設模板創建服務 --template-url 讀取遠端儲藏庫來創建服務 --path 指定創建服務的資料夾,不存在的話就會建立一個新的 我們要使用aws-nodejs這個模板來建立我們的服務: serverless create --template aws-nodejs --path serverless-notes-rest-api cd serverless-notes-rest-api npm init -y serverless-notes-rest-api資料夾下面有三個檔案handler.js、serverless.yml 和package.json,雖然裡面是很陽春的程式碼和設定,我們還是可以先部署到 AWS 看看。 serverless deploy --verbose 如果你在部署的過程中遇到錯誤,有可能是 AWS 帳戶權限給錯了,或是 serverless framework 讀不到正確的 credentials,所以最好在部署指令上加--verbose印出詳細的 log 去一一排除。...

July 13, 2021 · 4 min · RCGuo

無伺服器實作入門 - 安裝 Serverless Framework

無伺服器架構不是真的沒有伺服器,而是將管理伺服器基礎架構的責任轉移到雲服務供應商(AWS、Azure等)身上,從而簡化軟體開發過程,使開發團隊更專注在實現商業邏輯和產品的開發。 基礎設施即代碼 (IaC) 基礎設施即代碼 (IaC)對於軟體開發來說很重要,也是常被忽略的一環。雖然雲服務有提供圖形化的網頁介面控制台來配置無伺服器架構,一開始功能少的時候手動操作還應付得來,但是當功能拆分變多、業務規模變大時,對於測試、部署和環境管理配置就很難達到可重複性和一致性的需求。因此一開始就學習所謂的「正確姿勢」,對於後續開發、維護上的效率就能有所提升。 無伺服器框架可以滿足自動化部署服務的需求,由於我們會將無伺服器搭建在AWS上,所以可以選擇的框架有 AWS SAM 和 Serverless Framework。兩個都是開源框架,但是前者是專門針對 AWS 服務所開發的,而後者則支援多個不同的雲端供應商,如果後續要轉換到其他雲端進行開發,則框架還可以繼續沿用。 本文選擇使用 Serverless Framework 作為本次搭建的工具。 安裝 Serverless Framework 使用 Node.js 套件管理器 NPM 來安裝 serverless CLI: npm install -g serverless 官方也有提供 binary 執行檔的安裝方法 Installing Serverless Framework as a standalone binary 安裝完後輸入下方指令檢查一下,確認執行路徑有指向安裝框架的位置: serverless --version 註冊 AWS 並創建 Programmatic access 帳號 如果你沒有 AWS 帳號,首先要去註冊(sign up)一個 Root user,需要填寫信用卡資訊才能註冊。註冊資料填寫過程在此不詳述。 註冊成功後用 Root user 登入。由於 Root user 具有完全控制的管理員權限,基於安全理由官方建議(AWS account root user credentials and IAM user credentials )應該建立一個 IAM user 來存取 AWS 資源。由於篇幅的關係在此不詳述,附上官方文件操作說明 Creating IAM users (console),希望大家都能遵照這個安全原則進行操作。...

July 1, 2021 · 1 min · RCGuo