概觀
繼續進行任務!在這個實驗室中,您將繼續使用 DynamoDB 建置任務檔案產生器。這是三部分實驗室系列的第 2 部分。您已經在第 1 部分中建立了 DynamoDB 資料表並設定 IAM。在第 2 部分的這個實驗室中,您將建立和測試 Lambda 函數,這些函數會與 DynamoDB 互動並以數種不同的方式擷取資料。然後,您將測試您的新函數。在第 3 部分中,您將發佈應用程式,利用您在三個實驗室中學到的所有 DynamoDB 技能,派遣您的超級英雄團隊來拯救世界!
涵蓋的主題
本實驗室結束後,您將能夠:
- 建立 Lambda 函數,以兩種不同方式擷取 DynamoDB 資料表中的資料
- 使用範本測試 Lambda 函數
- 設定 Lambda 函數的自訂測試
先決條件
您應該參加 Introduction to Amazon DynamoDB 實驗室來熟悉關鍵概念。
以下為三部分實驗室系列中的第二部分。三個實驗室中的每一個都可以獨立存在,但由於實驗室建立在您之前所學到的內容,因此在參加本實驗室之前,您應先學習 Serverless Web Apps using Amazon DynamoDB - Part 1。
其他 AWS 服務
在您存取此實驗室期間,IAM 政策會停用實驗室不需要的其他 AWS 服務。此外,這個實驗室所用服務的功能會受限於實驗室所需,且在某些情況下,更會因實驗室蓄意的設計而進一步受限。存取其他服務或執行此實驗室指南以外的動作時,將會發生錯誤。
Amazon DynamoDB
Amazon DynamoDB 是一種快速靈活的 NoSQL 資料庫服務,適合無論規模為何皆需要穩定效能且延遲低於 10 毫秒的所有應用程式。它是全受管的雲端資料庫,並支援文件和鍵值存放模型。其靈活的資料模型和可靠的效能使其成為行動應用程式、Web、遊戲、廣告技術、物聯網和眾多其他應用程式的不二之選。
您可以使用 Amazon DynamoDB 建立資料庫資料表,以存放和擷取任意數量的資料,並處理任何規模的請求流量。Amazon DynamoDB 會自動將資料表的資料和流量分散到足夠數量的伺服器上,以處理客戶指定的請求容量和存放的資料量,同時保持一致的快速效能。
DynamoDB 術語
Tables (資料表) 與其他資料庫管理系統類似,DynamoDB 將資料存放在資料表中。資料表是資料的集合。例如,在此實驗室中,您將使用名為 SuperMission 的資料表,其中儲存了任務資訊。 Items (項目) 每個資料表包含多個項目。項目是可從所有其他項目唯一識別的一組屬性。SuperMission 資料表中的每一個項目代表 Mission 資訊。 Attributes (屬性) 每個項目是由一或多個屬性所組成。屬性是一種基本資料元素,不必再進一步細分。在 SuperMission 資料表中,項目具有 SuperHero、MissionStatus、Villain1 等屬性。DynamoDB 中的屬性與其他資料庫管理系統中的欄位或資料行有許多相似之處。 Primary Key (主索引鍵) 建立資料表時,除了表格名稱,還必須指定表格的主索引鍵。就像其他資料庫一樣,DynamoDB 中的主索引鍵是用來唯一識別資料表中的每個項目,所以不會有兩個項目擁有相同索引鍵的狀況。在資料庫中新增、更新或刪除項目時,必須為該項目指定主索引鍵屬性值。索引鍵值為必要,您無法略過。DynamoDB 支援兩種不同類型的主索引鍵:Partition Key (分區索引鍵) 和 Partition Key and Sort Key (分區索引鍵和排序索引鍵)。 Secondary Indexes (次要索引) 在 DynamoDB 中,您可以透過提供主索引鍵屬性值來讀取資料表中的資料。如果您想要使用非索引鍵屬性讀取資料,可使用次要索引來執行這個動作。在資料表上建立次要索引後,您就可以像從資料表中讀取資料的方式一樣,從索引中讀取資料。除了透過主索引鍵值存取資料以外,您的應用程式還可以透過使用次要索引來使用許多不同的查詢模式。
AWS Lambda
AWS Lambda 是一項運算服務,可在雲端中提供可調整大小的運算容量,讓開發人員更輕鬆地進行 Web 規模運算。將程式碼上傳到 AWS Lambda,然後 AWS Lambda 會負責佈建和管理用來執行程式碼的伺服器。AWS Lambda 支援多種程式語言:Node.js、Java 或 Python。 您可以透過兩種方式使用 AWS Lambda:
- 做為事件驅動的運算服務,讓 AWS Lambda 在回應事件時執行程式碼,例如您會在此實驗室看到的上傳影像檔案。
- 當作運算服務使用,執行程式碼來回應使用 Amazon API Gateway 或 API 呼叫的 HTTP 請求。
AWS Lambda 可延續 Amazon 規模的財務優勢。Lambda 僅在需要時執行程式碼並自動擴展,從每天幾個請求到每秒數千個皆可執行。Lambda 可讓您輕鬆為 Amazon S3 和 Amazon DynamoDB 等 AWS 服務建置資料處理觸發條件、處理存放在 Amazon Kinesis 中的串流資料,或以 AWS 的規模、效能和安全建立自己的後端。