實驗室概觀
此實驗室預計為 Developing with DynamoDB 課程的最後一個實驗室單元,以之前幾個實驗室所傳授的技能為基礎撰寫而成。因此,內容預期會較為艱深,並參考相關說明文件及運用先前的經驗,提供您完整實踐開發程序的機會,而非只是參考我們所提供的解答。不過,我們還是提供了完整的解答。如果您 遭遇瓶頸而需要解答,請參閱參考答案。
AnyCompany 正著手部署新的 web 音樂應用程式,以輔助其電影資料庫應用程式。他們選擇使用 Amazon DynamoDB,並搭配無伺服器的 AWS Lambda 架構來實作這項計畫。
此應用程式具有四項一般功能:使用者可以顯示資料庫中的所有音樂專輯,或僅顯示特定類型的專輯;使用者也可以新增或刪除資料庫項目,並更新特定專輯非主要屬性的內容。公司交派您負責建立及實作這項職務,結合 Amazon DynamoDB、AWS Lambda 和 Amazon API Gateway,並搭配您剛取得的前端網站。另外還有一項可自由選擇是否完成的任務,也就是整合 Amazon Cognito 和應用程式,為使用者提供授權。
音樂應用程式具備以下元件:
- 以 HTML/Javascript 撰寫並托管於 Amazon S3 的靜態前端。
- 採用 Amazon API Gateway、AWS Lambda 和 Amazon Cognito 的無伺服器後端。
- 供持久層使用的 DynamoDB 資料表。
上圖顯示實驗室完成後的整體架構。 透過 Amazon Cognito 進行驗證的使用者可以使用利用了 Amazon API Gateway 和多個 lambda 函數來操作名為 Albums 之 DynamoDB 資料表資料的音樂應用程式。
目標
此實驗室結束時,您應該能夠執行下列動作:
- 建立及部署以 Python 寫成的 Lambda 函數,以便對 DynamoDB 資料表執行操作。
- 運用 DynamoDB 條件運算式。
- 建立及部署 API Gateway 端點,使其成為 Lambda 函數的代理。
- 建立及設定 Amazon Cognito 使用者集區,以利執行身分驗證。
技術知識先決條件
想要順利完成此實驗室,您應熟悉 AWS 管理主控台的導覽方式,並了解如何在整合式開發環境 (IDE) 中編輯指令碼,以及實作基本 Python 指令碼,搭配 DynamoDB 執行 CRUD 操作。此外,您也應該具備 Amazon Simple Storage Service (Amazon S3)、AWS Lambda 和 Amazon API Gateway 服務的基礎知識。
圖示圖例
此實驗室使用各種不同的圖示,提醒您注意指南的特定層面。下列清單說明每個圖示的用途:
- 提醒: 有特殊影響或重要性的資訊 (如果您錯過此資訊,不會對設備或資料造成太大的問題,但可能會導致需要重複特定步驟)。
- 命令: 您必須執行的命令。
- 預期輸出: 您可使用的範例輸出,以驗證命令的輸出內容或經過編輯的檔案。
- 注意: 提示、秘訣或重要指引。
- 了解詳情: 具體指明可取得更多資訊的位置。
- 知識檢測: 您將有機會檢測您的知識並測試您學到的內容。
- 任務完成: 實驗室中的結論或摘要重點。
- 警告: 不可逆且可能造成命令或程序失敗的動作 (包含設定後無法變更的警告)。