使用 DynamoDB 存儲和檢索數據 - AWS Mobile SDK

Xamarin 的AWS行動 SDK 現在已包含在AWS SDK for .NET. 本指南參考 Xamarin 行動 SDK 的封存版本。

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用 DynamoDB 存儲和檢索數據

Amazon DynamoDB 是一種快速、可輕鬆擴展、高度可用、經濟實惠、非關聯式資料庫服務。DynamoDB 移除資料儲存體的傳統擴展性限制,而仍維持低延遲及可預期的效能。

下面的教學課程介紹如何將 DynamoDB 對象持久化模型與您的應用集成,該模型會在 DynamoDB 中存儲對象。

項目設定

先決條件

您必須完成設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK,然後再開始本教程。

建立 DynamoDB 資料表

您必須先建立資料表,然後才可以將數據寫入 DynamoDB 數據庫。建立資料表時,您必須指定主索引鍵。主索引鍵包含散列屬性和一個可選的範圍屬性。如需如何使用主要屬性和範圍屬性的詳細資訊,請參。處理表格

  1. 前往DynamoDB 主控台,然後按一下建立資料表。建立資料表精靈隨即出現。

  2. 指定表名、主鍵類型(哈希)和哈希屬性名稱(「Id」),如下所示,然後單擊Continue

    DynamoDB table creation interface showing table name, primary key type, and hash attribute configuration.
  3. 將下一個屏幕中的編輯字段留空,然後單擊Continue

  4. 接受個讀取容量單位寫入容量單位,然後按一下Continue

  5. 在下一個屏幕上,在Send notification to:文字方塊,然後按一下Continue。審核畫面隨即出現。

  6. 按一下 Create (建立)。建立資料表需要幾分鐘的時間來完成。

設定 DynamoDB 的許可

要使您的身份池能夠訪問 Amazon DynamoDB,您必須修改身份池的角色。

  1. 導覽至 。Identity and Access Management,然後按一下角色在左側窗格中。搜索您的身分集區名稱-將會列出兩個角色,一個用於未驗證的使用者,一個用於已驗證的使用者。

  2. 按一下未經驗證使用者的角色 (它會在您的身分集區名稱後附加「unauth」),然後按一下建立角色政策

  3. 選擇政策產生器,然後按一下選擇

  4. 編輯許可頁面上,輸入下圖顯示的設定。DynamoDB 資源名稱 (ARN) 類似arn:aws:dynamodb:us-west-2:123456789012:table/Books,由表所在的區域、所有者的 AWS 賬户號碼以及表格的名稱組成,格式為table/Books。如需如何指定 ARN 的詳細資訊,請參。DynamoDB 的 Amazon Resource Name

    Edit Permissions page for Amazon DynamoDB with Allow effect and ARN input field.
  5. 按一下新增陳述式,然後按一下後續步驟。嚮導會顯示產生的組態。

  6. 按一下應用政策

AddNuGet軟件包 DynamoDB 到您的項目中

請按照中的説明步驟 4設定適用於 .NET 和 Xamarin 的 AWS Mobile SDK添加 DynamoDB 庫NuGet套件至您的項目。

InitializeAmazonDynamoDB客户端

將您已初始化的 Amazon Cognito 憑證提供商及您的區域傳遞至AmazonDynamoDB構造函數,然後將用户端傳遞給 DynamoDBContext:

var client = new AmazonDynamoDBClient(credentials,region); DynamoDBContext context = new DynamoDBContext(client);

建立類別

要將行寫入表,請定義一個類來保存您的行數據。類還應包含保存該行的屬性數據的屬性,並將映射到在控制台中創建的 DynamoDB 表。以下類聲明説明瞭這樣的類:

[DynamoDBTable("Books")] public class Book { [DynamoDBHashKey] // Hash key. public int Id { get; set; } public string Title { get; set; } public string ISBN { get; set; } public int Price { get; set; } public string PageCount { get; set; } public string Author{ get; set; } }

儲存項目

要保存項目,請首先創建一個對象:

Book songOfIceAndFire = new Book() { Id=1, Title="Game Of Thrones", ISBN="978-0553593716", Price=4, PageCount="819", Author="GRRM" };

然後保存它:

context.Save(songOfIceAndFire);

要更新行,請修改DDTableRow類別並調用AWSDynamoObjectMapper.save()如上所示。

擷取項目

使用主鍵檢索項目:

Book retrievedBook = context.Load<Book>(1);

更新項目

若要更新項目:

Book retrievedBook = context.Load<Book>(1); retrievedBook.ISBN = "978-0553593716"; context.Save(retrievedBook);

刪除項目

刪除項目:

Book retrievedBook = context.Load<Book>(1); context.Delete(retrievedBook);

有關從 Xamarin 應用程序訪問 DynamoDB 的詳細信息,請參閲Amazon DynamoDB