

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.

# Utilisation d’index secondaires locaux dans la AWS CLI de DynamoDB
<a name="LCICli"></a>

Vous pouvez utiliser AWS CLI pour créer une table Amazon DynamoDB avec un ou plusieurs index secondaires locaux, décrire les index sur la table, et effectuer des requêtes à l’aide des index.

**Topics**
+ [Créer une table avec un index secondaire local](#LCICli.CreateTableWithIndex)
+ [Décrire une table avec un index secondaire local](#LCICli.DescribeTableWithIndex)
+ [Interroger un index secondaire local](#LCICli.QueryAnIndex)

## Créer une table avec un index secondaire local
<a name="LCICli.CreateTableWithIndex"></a>

Vous devez créer des index secondaires locaux au moment où vous créez une table. Pour ce faire, utilisez le paramètre `create-table` et fournissez vos spécifications pour un ou plusieurs index secondaires locaux. L’exemple suivant crée une table (`Music`) destinée à accueillir des données informations sur des chansons dans une collection musicale. La clé de partition est `Artist`, et la clé de tri `SongTitle`. Un index secondaire, `AlbumTitleIndex`, sur l’attribut `AlbumTitle` facilite les requêtes par titre d’album. 

```
aws dynamodb create-table \
    --table-name Music \
    --attribute-definitions AttributeName=Artist,AttributeType=S AttributeName=SongTitle,AttributeType=S \
        AttributeName=AlbumTitle,AttributeType=S  \
    --key-schema AttributeName=Artist,KeyType=HASH AttributeName=SongTitle,KeyType=RANGE \
    --provisioned-throughput \
        ReadCapacityUnits=10,WriteCapacityUnits=5 \
    --local-secondary-indexes \
        "[{\"IndexName\": \"AlbumTitleIndex\",
        \"KeySchema\":[{\"AttributeName\":\"Artist\",\"KeyType\":\"HASH\"},
                      {\"AttributeName\":\"AlbumTitle\",\"KeyType\":\"RANGE\"}],
        \"Projection\":{\"ProjectionType\":\"INCLUDE\",  \"NonKeyAttributes\":[\"Genre\", \"Year\"]}}]"
```

Vous devez attendre que DynamoDB crée la table et définisse l’état de celle-ci sur `ACTIVE`. Après cela, vous pouvez commencer à insérer des éléments de données dans la table. Vous pouvez utiliser la commande [describe-table](https://docs.aws.amazon.com/cli/latest/reference/dynamodb/describe-table.html) pour déterminer l’état de la création de table. 

## Décrire une table avec un index secondaire local
<a name="LCICli.DescribeTableWithIndex"></a>

Pour obtenir des informations concernant les index secondaires locaux sur une table, utilisez le paramètre `describe-table`. Pour chaque index, vous pouvez accéder à son nom, à son schéma de clé et aux attributs projetés.

```
aws dynamodb describe-table --table-name Music
```

## Interroger un index secondaire local
<a name="LCICli.QueryAnIndex"></a>

Vous pouvez utiliser l’opération `query` sur un index secondaire local de la même manière que vous utilisez l’opération `query` sur une table. Vous devez spécifier le nom d’index, les critères de requête pour la clé de tri d’index et les attributs que vous souhaitez renvoyer. Dans cet exemple, l’index est `AlbumTitleIndex` et la clé de tri d’index est `AlbumTitle`. 

Les seuls attributs renvoyés sont ceux qui ont été projetés dans l’index. Vous pourriez également modifier cette requête pour sélectionner des attributs autres que de clé, mais cela nécessiterait une activité d’extraction de table relativement coûteuse. Pour plus d’informations sur les extractions de table, consultez [Projections d’attribut](LSI.md#LSI.Projections).

```
aws dynamodb query \
    --table-name Music \
    --index-name AlbumTitleIndex \
    --key-condition-expression "Artist = :v_artist and AlbumTitle = :v_title" \
    --expression-attribute-values  '{":v_artist":{"S":"Acme Band"},":v_title":{"S":"Songs About Life"} }'
```