

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

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

# Armazene e Recupere Dados com o DynamoDB
<a name="getting-started-store-retrieve-data"></a>

 [O Amazon DynamoDB](https://aws.amazon.com/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
<a name="project-setup"></a>

### Pré-requisitos
<a name="prerequisites"></a>

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

### Criação de uma tabela do DynamoDB
<a name="create-a-dynamodb-table"></a>

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](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html).

1. Acesse o [console do DynamoDB](https://console.aws.amazon.com/dynamodb/home) e clique em **Create Table (Criar tabela)**. O assistente Criar Tabela será exibido.

1. 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.\]](http://docs.aws.amazon.com/pt_br/mobile/sdkforxamarin/developerguide/images/create-table.png)

1. Deixe em branco os campos de edição da tela seguinte e clique em **Continue (Continuar)**.

1. 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)**.

1. 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.

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

### Definição de permissões para DynamoDB
<a name="set-permissions-for-dynamodb"></a>

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](https://console.aws.amazon.com/iam/home) 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.

1. 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)**.

1. Selecione **Policy Generator (Gerador de políticas\$1** e clique em **Select (Selecionar)**.

1. 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 a especificação ARNs, consulte [Amazon Resource Names for DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/UsingIAMWithDDB.html#ARN_Format).  
![\[Edit Permissions page for Amazon DynamoDB with Allow effect and ARN input field.\]](http://docs.aws.amazon.com/pt_br/mobile/sdkforxamarin/developerguide/images/edit-permissions-dynamodb.png)

1. Clique em **Add statement (Adicionar instrução)**e **Next Step (Próxima etapa)**. O assistente mostrará a você a configuração gerada.

1. Clique em **Apply Policy (Aplicar política)**.

### Adicione o NuGet pacote do DynamoDB ao seu projeto
<a name="add-nuget-package-for-dynamodb-to-your-project"></a>

Siga a etapa 4 das instruções em [Configurar o AWS Mobile SDK para .NET e Xamarin para](setup.md) NuGet adicionar o pacote do DynamoDB ao seu projeto.

## Inicializar AmazonDynamo DBClient
<a name="initialize-amazondynamodbclient"></a>

Passe seu provedor de credenciais inicializado do Amazon Cognito e sua região para `AmazonDynamoDB` o construtor e, em seguida, passe o cliente para o Dynamo: DBContext

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

## Crie uma classe
<a name="create-a-class"></a>

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
<a name="save-an-item"></a>

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
<a name="retrieve-an-item"></a>

Recupere um item usando sua chave primária:

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

## Atualização de um item
<a name="update-an-item"></a>

Para atualizar um item:

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

## Exclusão de um item
<a name="delete-an-item"></a>

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](dynamodb.md).