

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.

# Tutoriels : Création de tables globales multi-comptes
<a name="V2globaltables_MA.tutorial"></a>

Cette section fournit des step-by-step instructions pour créer des tables globales DynamoDB qui s'étendent sur plusieurs comptes. AWS 

## Création d'une table globale multi-comptes à l'aide de la console DynamoDB
<a name="create-ma-gt-console"></a>

Procédez comme suit pour créer une table globale multi-comptes à l'aide du AWS Management Console. L'exemple suivant crée une table globale avec des répliques de tables aux États-Unis d'Amérique.

1. Connectez-vous à la console DynamoDB AWS Management Console et ouvrez-la à l'adresse correspondant [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)au premier compte (par exemple). *111122223333*

1. Pour cet exemple, choisissez **USA Est (Ohio)** dans le sélecteur de région dans la barre de navigation.

1. Dans le volet de navigation sur le côté gauche de la console, choisissez **Tables**.

1. Choisissez **Créer une table**.

1. Sur la page **Créer un tableau** :

   1. Sous **Nom du tableau**, saisissez **MusicTable**.

   1. Pour **Clé de partition**, saisissez **Artist**.

   1. Pour **Clé de tri**, entrez **SongTitle**.

   1. Conservez les autres paramètres par défaut et choisissez **Créer une table**.

1. Ajoutez la politique de ressources suivante au tableau

------
#### [ JSON ]

****  

   ```
   {
   "Version":"2012-10-17",		 	 	 
   "Statement": [
       {
           "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
           "Effect": "Allow",
           "Action": [
               "dynamodb:ReadDataForReplication",
               "dynamodb:WriteDataForReplication",
               "dynamodb:ReplicateSettings"
           ],
           "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
           "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
           "Condition": {
               "StringEquals": {
                   "aws:SourceAccount": ["444455556666","111122223333"],
                   "aws:SourceArn": [
                       "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
                       "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable"
                   ]
               }
           }
       },
       {
           "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
           "Effect": "Allow",
           "Action": [
               "dynamodb:AssociateTableReplica"
           ],
           "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
           "Principal": {"AWS": ["444455556666"]}
       }
   ]
   }
   ```

------

1. La nouvelle table sert de première table de réplica dans une nouvelle table globale. Il s’agit du prototype pour d’autres tables de réplica que vous ajouterez ultérieurement.

1. Attendez que la table soit **active**. Pour la table nouvellement créée, dans l'onglet **Tableaux globaux**, accédez à **Réglages > Réplication**, puis cliquez sur **Activer**.

1. Déconnectez-vous de ce compte (*111122223333*ici).

1. Connectez-vous au AWS Management Console et ouvrez-le sur la console [https://console.aws.amazon.com/dynamodb/](https://console.aws.amazon.com/dynamodb/)DynamoDB pour le deuxième compte (par exemple). *444455556666*

1. Pour cet exemple, choisissez **USA East (Virginie du Nord)** dans le sélecteur de région de la barre de navigation.

1. La console vérifie qu’il n’existe pas de table du même nom dans la région sélectionnée. (Si une table du même nom existe, vous devez la supprimer avant de pouvoir créer une nouvelle table de réplicas dans cette région.)

1. Dans le menu déroulant situé près de **Créer une table**, choisissez **Créer depuis un autre compte**

1. Dans le **tableau Créer depuis un autre compte** :

   1. Ajoutez **arn:aws:dynamodb:us-east-2:*111122223333*:table/MusicTable** en tant qu'arn de table pour la table source.

   1. Dans la **table de réplication ARNs**, ajoutez à nouveau l'ARN de la table source**arn:aws:dynamodb:us-east-2:*111122223333*:table/MusicTable**. Si plusieurs répliques existent déjà dans le cadre d'une table globale multi-comptes, vous devez ajouter chaque réplique existante à l' ReplicaTableARN.

   1. Conservez les autres paramètres par défaut et choisissez **Soumettre**.

1. L'onglet **Tables globales** de la table Music (et de toute autre table répliquée) indique que la table a été répliquée dans plusieurs régions.

1. Pour tester la réplication :

   1. Vous pouvez utiliser n'importe quelle région dans laquelle une réplique existe pour cette table

   1. Choisissez **Explorer les éléments de la table**.

   1. Choisissez **Créer un élément**.

   1. Entrez **item\$11** pour **Artiste** et **Song Value 1** pour **SongTitle**.

   1. Choisissez **Créer un élément**.

   1. Vérifiez la réplication en passant aux autres régions :

   1. Vérifiez que le tableau Musique contient l’élément que vous avez créé.

## Créez un tableau global multi-comptes à l'aide du AWS CLI
<a name="ma-gt-cli"></a>

Les exemples suivants montrent comment créer une table globale multi-comptes à l'aide du AWS CLI. Ces exemples illustrent le flux de travail complet pour configurer la réplication entre comptes.

------
#### [ CLI ]

Utilisez les AWS CLI commandes suivantes pour créer une table globale multi-comptes avec réplication entre comptes.

```
# STEP 1: Setting resource policy for the table in account 111122223333

cat > /tmp/source-resource-policy.json << 'EOF'
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": ["444455556666","111122223333"],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
                        "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable"
                    ]
                }
            }
        },
        {
            "Sid": "AllowTrustedAccountsToJoinThisGlobalTable",
            "Effect": "Allow",
            "Action": [
                "dynamodb:AssociateTableReplica"
            ],
            "Resource": "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable",
            "Principal": {"AWS": ["444455556666"]}
        }
    ]
}
EOF

# Step 2: Create a new table (MusicTable) in US East (Ohio), 
#   with DynamoDB Streams enabled (NEW_AND_OLD_IMAGES),
#   and Settings Replication ENABLED on the account 111122223333

aws dynamodb create-table \
    --table-name MusicTable \
    --attribute-definitions \
        AttributeName=Artist,AttributeType=S \
        AttributeName=SongTitle,AttributeType=S \
    --key-schema \
        AttributeName=Artist,KeyType=HASH \
        AttributeName=SongTitle,KeyType=RANGE \
    --billing-mode PAY_PER_REQUEST \
    --stream-specification StreamEnabled=true,StreamViewType=NEW_AND_OLD_IMAGES \
    --global-table-settings-replication-mode ENABLED \
    --resource-policy file:///tmp/source-resource-policy.json \
    --region us-east-2 


# Step 3: Creating replica table in account 444455556666

# Resource policy for account 444455556666
cat > /tmp/dest-resource-policy.json << 'EOF'
{
    "Version": "2012-10-17", 		 	 	 
    "Statement": [
        {
            "Sid": "DynamoDBActionsNeededForSteadyStateReplication",
            "Effect": "Allow",
            "Action": [
                "dynamodb:ReadDataForReplication",
                "dynamodb:WriteDataForReplication",
                "dynamodb:ReplicateSettings"
            ],
            "Resource": "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
            "Principal": {"Service": ["replication.dynamodb.amazonaws.com"]},
            "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": ["444455556666","111122223333"],
                    "aws:SourceArn": [
                        "arn:aws:dynamodb:us-east-1:444455556666:table/MusicTable",
                        "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable"
                    ]
                }
            }
        }
    ]
}
EOF

# Execute the replica table creation
aws dynamodb create-table \
    --table-name MusicTable \
    --global-table-source-arn "arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable" \
    --resource-policy file:///tmp/dest-resource-policy.json \
    --global-table-settings-replication-mode ENABLED \
    --region us-east-1

# Step 4: View the list of replicas created using describe-table
aws dynamodb describe-table \
    --table-name MusicTable \
    --region us-east-2 \
    --query 'Table.{TableName:TableName,TableStatus:TableStatus,MultiRegionConsistency:MultiRegionConsistency,Replicas:Replicas[*].{Region:RegionName,Status:ReplicaStatus}}'

# Step 5: To verify that replication is working, add a new item to the Music table in US East (Ohio)
aws dynamodb put-item \
    --table-name MusicTable \
    --item '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
    --region us-east-2

# Step 6: Wait for a few seconds, and then check to see whether the item has been 
# successfully replicated to US East (N. Virginia) and Europe (Ireland)
aws dynamodb get-item \
    --table-name MusicTable \
    --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
    --region us-east-1

aws dynamodb get-item \
    --table-name MusicTable \
    --key '{"Artist": {"S":"item_1"},"SongTitle": {"S":"Song Value 1"}}' \
    --region us-east-2

# Step 7: Delete the replica table in US East (N. Virginia) Region
aws dynamodb delete-table \
    --table-name MusicTable \
    --region us-east-1

# Clean up: Delete the primary table
aws dynamodb delete-table \
    --table-name MusicTable \
    --region us-east-2
```

------