

Le SDK AWS mobile pour Xamarin est désormais inclus dans le. AWS SDK pour .NET Ce guide fait référence à la version archivée du SDK mobile pour Xamarin.

Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.

# Stocker et récupérer des données avec DynamoDB
<a name="getting-started-store-retrieve-data"></a>

 [Amazon DynamoDB](https://aws.amazon.com/dynamodb/) est un service de base de données non relationnelle rapide, économique, très évolutif et hautement disponible. DynamoDB permet de s'affranchir des limites habituelles du dimensionnement de stockage de données, tout en conservant une faible latence et des performances prévisibles.

Le didacticiel ci-dessous explique comment intégrer le modèle de persistance des objets DynamoDB à votre application, afin de stocker les objets dans DynamoDB.

## Configuration du projet
<a name="project-setup"></a>

### Conditions préalables
<a name="prerequisites"></a>

Avant de commencer ce didacticiel, vous devez suivre toutes les instructions de la section [Configurer un kit SDK AWS Mobile pour .NET et Xamarin](setup.md).

### Créer une table DynamoDB
<a name="create-a-dynamodb-table"></a>

Pour pouvoir lire et écrire des données dans une base de données DynamoDB, vous devez d'abord créer une table. Lors de la création de la table, vous devez spécifier la clé primaire. La clé primaire se compose d'un attribut de hachage et d'un attribut de plage facultatif. Pour en savoir plus sur l'utilisation des attributs primaires et des attributs de plage, reportez-vous à la section [Utilisation de tables](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/WorkingWithTables.html).

1. Accédez à la [console DynamoDB](https://console.aws.amazon.com/dynamodb/home) et cliquez sur **Créer une table**. L'Assistant de création de table s'affiche.

1. Indiquez le nom de votre table, le type de clé primaire (hachage) et le nom de l'attribut de hachage (« Id »), comme indiqué ci-dessous, puis cliquez sur **Continuer** :  
![\[DynamoDB table creation interface showing table name, primary key type, and hash attribute configuration.\]](http://docs.aws.amazon.com/fr_fr/mobile/sdkforxamarin/developerguide/images/create-table.png)

1. Laissez les champs modifiables de l'écran suivant vides et cliquez sur **Continuer**.

1. Acceptez les valeurs par défaut pour les champs **Unités de capacité en lecture** et **Unités de capacité en écriture** et cliquez sur **Continuer**.

1. Dans l'écran suivant, entrez votre adresse e-mail dans la zone de texte **Envoyer les notifications à :** et cliquez sur **Continuer**. L'écran de vérification s'affiche.

1. Cliquez sur **Create**. La création de votre table peut prendre quelques minutes.

### Définir les autorisations pour DynamoDB
<a name="set-permissions-for-dynamodb"></a>

Pour que votre groupe d'identités puisse accéder à Amazon DynamoDB, vous devez modifier les rôles de ce groupe d'identités.

1. Accédez à la [console Identity and Access Management](https://console.aws.amazon.com/iam/home) et cliquez sur **Rôles** dans le volet de gauche. Recherchez le nom de votre groupe d'identités. Deux rôles seront indiqués : un pour les utilisateurs non authentifiés et un autre, pour les utilisateurs authentifiés.

1. Cliquez sur le rôle correspondant aux utilisateurs non authentifiés (signalé par le suffixe « unauth » à la suite du nom de votre groupe d'identités) et cliquez sur **Créer une stratégie de rôle**.

1. Sélectionnez **Générateur de stratégies** et cliquez sur **Sélectionner**.

1. Sur la page **Modifier les autorisations**, saisissez les paramètres indiqués dans l'illustration suivante. L'ARN (Amazon Resource Name) d'une table DynamoDB se présente comme suit : `arn:aws:dynamodb:us-west-2:123456789012:table/Books`. Il se compose de la région dans laquelle se trouve la table, du numéro de compte AWS du titulaire et du nom de la table au format `table/Books`. Pour plus d'informations sur la spécification ARNs, consultez [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/fr_fr/mobile/sdkforxamarin/developerguide/images/edit-permissions-dynamodb.png)

1. Cliquez sur **Ajouter une instruction**, puis sur **Étape suivante**. L'Assistant vous indiquera la configuration générée.

1. Cliquez sur **Apply Policy**.

### Ajouter un NuGet package pour DynamoDB à votre projet
<a name="add-nuget-package-for-dynamodb-to-your-project"></a>

Suivez l'étape 4 des instructions de la [section Configuration du SDK AWS Mobile pour .NET and Xamarin pour](setup.md) NuGet ajouter le package DynamoDB à votre projet.

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

Transmettez votre fournisseur d'informations d'identification Amazon Cognito initialisé et votre région `AmazonDynamoDB` au constructeur, puis transmettez le client au Dynamo : DBContext

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

## Créer une classe
<a name="create-a-class"></a>

Pour écrire une ligne dans la table, définissez une classe qui contiendra les données de votre ligne. La classe doit également contenir des propriétés qui indiquent les données des attributs de la ligne et seront mises en correspondance avec la table DynamoDB créée dans la console. La déclaration de classe suivante correspond à une classe de ce type :

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

## Enregistrer un élément
<a name="save-an-item"></a>

Pour enregistrer un élément, commencez par créer un objet :

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

Puis enregistrez-le :

```
context.Save(songOfIceAndFire);
```

Pour mettre à jour une ligne, modifiez l'instance de la classe `DDTableRow` et appelez `AWSDynamoObjectMapper.save()` comme indiqué ci-dessus.

## Récupérer un élément
<a name="retrieve-an-item"></a>

Récupérer un élément à l'aide d'une clé primaire :

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

## Mettre à jour un élément
<a name="update-an-item"></a>

Pour mettre à jour un élément :

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

## Supprimer un élément
<a name="delete-an-item"></a>

Pour supprimer un élément :

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

Pour en savoir plus sur l'accès à DynamoDB depuis une application Xamarin, consultez la page [Amazon DynamoDB](dynamodb.md).