Tutorial: Creazione di tabelle globali multi-account - Amazon DynamoDB

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: Creazione di tabelle globali multi-account

Questa sezione fornisce step-by-step istruzioni per creare tabelle globali DynamoDB che si estendono su più account. AWS

Segui questi passaggi per creare una tabella globale multi-account utilizzando. Console di gestione AWS L'esempio seguente crea una tabella globale con tabelle di replica negli Stati Uniti d'America.

  1. Accedi Console di gestione AWS e apri la console DynamoDB https://console.aws.amazon.com/dynamodb/all'indirizzo per il primo account (ad esempio). 111122223333

  2. Per questo esempio, seleziona Stati Uniti orientali (Ohio) dal selettore delle Regioni nella barra di navigazione.

  3. Nel riquadro di navigazione sul lato sinistro della console scegli Tables (Tabelle).

  4. Scegliere Create Table (Crea tabella).

  5. Nella pagina Crea tabella:

    1. Nel campo Table name (Nome tabella) immetti MusicTable.

    2. In Partition key (Chiave di partizione), inserisci Artist.

    3. Per Chiave di ordinamento, immetti SongTitle.

    4. Mantieni le restanti impostazioni predefinite e seleziona Crea tabella.

  6. Aggiungi la seguente politica delle risorse alla tabella

    { "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. Questa nuova tabella funge da prima tabella di replica in una nuova tabella globale. È il prototipo per altre tabelle di replica che verranno aggiunte in seguito.

  8. Attendi che la tabella diventi attiva. Per la tabella appena creata, dalla scheda Tabelle globali, accedi a Replica delle impostazioni e fai clic su Abilita.

  9. Esci da questo account (111122223333qui).

  10. Accedi Console di gestione AWS e apri la console DynamoDB https://console.aws.amazon.com/dynamodb/all'indirizzo per il secondo account (ad esempio). 444455556666

  11. Per questo esempio, scegli Stati Uniti orientali (Virginia settentrionale) dal selettore Regione nella barra di navigazione.

  12. La console verifica che non esista una tabella con lo stesso nome nella Regione selezionata. Se esiste una tabella con lo stesso nome, è necessario eliminare la tabella esistente prima di poter creare una nuova tabella di replica in quella regione.

  13. Nel menu a discesa vicino a Crea tabella, scegli Crea da un altro account

  14. Nella pagina Crea tabella da un altro account:

    1. Aggiungi arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable come tabella arn per la tabella di origine.

    2. Nella tabella di replica ARNs, aggiungi nuovamente l'ARN della tabella di origine. arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable Se esistono già più repliche come parte di una tabella globale multiaccount, è necessario aggiungere tutte le repliche esistenti all'ARN. ReplicaTable

    3. Mantieni le altre impostazioni predefinite e scegli Invia.

  15. La scheda Tabelle globali per la tabella Music (e per qualsiasi altra tabella di replica) mostra che la tabella è stata replicata in più regioni.

  16. Per testare la replica:

    1. È possibile utilizzare qualsiasi regione in cui esiste una replica per questa tabella

    2. Scegli Explore table items (Esplora elementi della tabella).

    3. Scegli Crea elemento.

    4. Inserisci item_1 per Artista e Song Value 1 per SongTitle.

    5. Scegli Crea elemento.

    6. Verifica la replica passando alle altre Regioni:

    7. Verifica che la tabella Musica contenga l’elemento creato.

Negli esempi seguenti viene illustrato come creare una tabella globale con più account utilizzando. AWS CLI Questi esempi illustrano il flusso di lavoro completo per l'impostazione della replica tra account.

CLI

Utilizza i seguenti AWS CLI comandi per creare una tabella globale multi-account con replica tra account.

# 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