Tutoriels : Création de tables globales multi-comptes - Amazon DynamoDB

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

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

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/au premier compte (par exemple). 111122223333

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

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

  4. Choisissez Créer une table.

  5. Sur la page Créer un tableau :

    1. Sous Nom du tableau, saisissez MusicTable.

    2. Pour Clé de partition, saisissez Artist.

    3. Pour Clé de tri, entrez SongTitle.

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

  6. Ajoutez la politique de ressources suivante au tableau

    { "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"]} } ] }
  7. 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.

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

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

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

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

  12. 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.)

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

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

    2. Dans la table de réplication ARNs, ajoutez à nouveau l'ARN de la table sourcearn: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.

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

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

  16. Pour tester la réplication :

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

    2. Choisissez Explorer les éléments de la table.

    3. Choisissez Créer un élément.

    4. Entrez item_1 pour Artiste et Song Value 1 pour SongTitle.

    5. Choisissez Créer un élément.

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

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

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