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
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.
-
Acesse o console do DynamoDB
e clique em Create Table (Criar tabela). O assistente Criar Tabela será exibido. -
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):
-
Deixe em branco os campos de edição da tela seguinte e clique em Continue (Continuar).
-
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).
-
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.
-
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.
-
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. -
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).
-
Selecione Policy Generator (Gerador de políticas_ e clique em Select (Selecionar).
-
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 formatotable/Books
. Para obter mais informações sobre como especificar ARNs, consulte os Nomes de recurso da Amazon para DynamoDB. -
Clique em Add statement (Adicionar instrução)e Next Step (Próxima etapa). O assistente mostrará a você a configuração gerada.
-
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.