Armazene e Recupere Dados com o DynamoDB - AWS Mobile SDK

O AWS Mobile SDK for Xamarin agora está incluído no AWS SDK for .NET. Este guia faz referência à versão arquivada do Mobile SDK para Xamarin.

Armazene e Recupere Dados com o DynamoDB

O Amazon DynamoDB é um serviço de banco de dados rápido, altamente disponível, altamente escalável, econômico e não relacional. O DynamoDB remove limitações de escalabilidade tradicionais sobre armazenamento de dados, mantendo, ao mesmo tempo, a baixa latência e o desempenho previsível.

O tutorial a seguir explica como integrar o DynamoDB Object Persistence Model com o seu aplicativo, que armazena objetos no DynamoDB.

Configuração do projeto

Pré-requisitos

É necessário concluir todas as instruções na Configuração do AWS Mobile SDK para .NET e Xamarin antes de iniciar este tutorial.

Criação de uma tabela do DynamoDB

Antes de ler e gravar dados em um banco de dados do DynamoDB, você deve criar uma tabela. Ao criar uma tabela, é preciso especificar a chave primária. A chave primária é composta por um atributo de hash e um atributo de intervalo. Para obter mais informações sobre como os atributos principal e de intervalo são usados, consulte Trabalho com tabelas.

  1. Acesse o console do DynamoDB e clique em Create Table (Criar tabela). O assistente Criar Tabela será exibido.

  2. Especifique o nome da tabela, o tipo de chave primária (Hash), e o nome do atributo de hash ("Id"), conforme mostrado abaixo e clique em Continue (Continuar):

    DynamoDB table creation interface showing table name, primary key type, and hash attribute configuration.
  3. Deixe em branco os campos de edição da tela seguinte e clique em Continue (Continuar).

  4. Aceite os valores padrão para Read Capacity Units (Unidades de capacidade de leitura) e Write Capacity Units (Unidades de capacidade de gravação) e clique em Continue (Continuar).

  5. Na próxima tela, insira seu endereço de e-mail na caixa de texto Send notification to: (Enviar notificação para:) e clique em Continue (Continuar). A tela de revisão será exibida.

  6. Clique em Criar. Pode demorar alguns minutos para a criação de sua tabela.

Definição de permissões para DynamoDB

Para que o seu grupo de identidades acesse o Amazon DynamoDB, você deve modificar as funções do grupo de identidades.

  1. Navegue até o console do Identity and Access Management e clique em Roles (Funções) no painel à esquerda. Pesquise o nome do seu grupo de identidades. Duas funções serão listadas: uma para os usuários autenticados e outra para os não autenticados.

  2. Clique na função para usuários não autenticados (terá "unauth" anexado ao nome do seu grupo de identidades) e clique em Create Role Policy (Criar política de função).

  3. Selecione Policy Generator (Gerador de políticas_ e clique em Select (Selecionar).

  4. Na página Edit Permissions (Editar permissões), insira as configurações mostradas na imagem a seguir. O nome de recurso da Amazon (ARN) de uma tabela do DynamoDB se parece com arn:aws:dynamodb:us-west-2:123456789012:table/Books e é composto pela região em que a tabela está localizada, pelo proprietário do número da conta da AWS e pelo nome da tabela no formato table/Books. Para obter mais informações sobre como especificar ARNs, consulte os Nomes de recurso da Amazon para DynamoDB.

    Edit Permissions page for Amazon DynamoDB with Allow effect and ARN input field.
  5. Clique em Add statement (Adicionar instrução)e Next Step (Próxima etapa). O assistente mostrará a você a configuração gerada.

  6. Clique em Apply Policy (Aplicar política).

Adicionar pacote do NuGet do DynamoDB ao seu projeto

Siga a etapa 4 das instruções contidas em Configuração do AWS Mobile SDK para .NET e Xamarin para adicionar o pacote NuGet do DynamoDB ao projeto.

Inicializar o AmazonDynamoDBClient

Tenha as credenciais aprovadas pelo provedor do Amazon Cognito inicializadas e sua região referente ao construtor do AmazonDynamoDB e, em seguida, aprove o cliente para o DynamoDBContext:

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

Crie uma classe

Para gravar uma linha na tabela, defina uma classe para armazenar seus dados de linha. A classe também deve conter propriedades que contenham o atributo de dados referente à linha e que será mapeado para o DynamoDB Table criado no console. A declaração de classe a seguir ilustra a referida classe:

[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; } }

Salvar um item

Para salvar um item, crie um objeto primeiro:

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

Em seguida, salve:

context.Save(songOfIceAndFire);

Para atualizar uma linha, modifique a instância da classe DDTableRow e convoque AWSDynamoObjectMapper.save(), conforme mostrado acima.

Recuperação de um item

Recupere um item usando sua chave primária:

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

Atualização de um item

Para atualizar um item:

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

Exclusão de um item

Para excluir um item:

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

Para obter mais informações sobre como acessar o DynamoDB em um aplicativo Xamarin, consulte Amazon DynamoDB.