Tutorials: Globale Tabellen mit mehreren Konten erstellen - Amazon DynamoDB

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Tutorials: Globale Tabellen mit mehreren Konten erstellen

Dieser Abschnitt enthält step-by-step Anweisungen zum Erstellen globaler DynamoDB-Tabellen, die sich über mehrere AWS Konten erstrecken.

Gehen Sie wie folgt vor, um eine globale Tabelle mit mehreren Konten mithilfe von zu erstellen. AWS-Managementkonsole Im folgenden Beispiel wird eine globale Tabelle mit Replikattabellen in den Vereinigte Staaten erstellt.

  1. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter https://console.aws.amazon.com/dynamodb/für das erste Konto (sagen wir111122223333).

  2. Wählen Sie für dieses Beispiel in der Regionsauswahl in der Navigationsleiste die Region USA Ost (Ohio) aus.

  3. Klicken Sie im Navigationsbereich auf der linken Seite der Konsole auf Tabellen.

  4. Wählen Sie Tabelle erstellen aus.

  5. Gehen Sie auf der Seite Tabelle erstellen wie folgt vor:

    1. Geben Sie unter Tabellenname MusicTable ein.

    2. Geben Sie unter Partitionsschlüssel den Wert Artist ein.

    3. Geben Sie unter (Sortierschlüssel) den Wert SongTitle ein.

    4. Behalten Sie die übrigen Standardeinstellungen bei und wählen Sie Tabelle erstellen aus.

  6. Fügen Sie der Tabelle die folgende Ressourcenrichtlinie hinzu

    { "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. Diese neue Tabelle dient als erste Replikattabelle in einer neuen globalen Tabelle. Sie stellt den Prototyp für andere Replikattabellen dar, die Sie später hinzufügen.

  8. Warten Sie, bis die Tabelle aktiv wird. Navigieren Sie für die neu erstellte Tabelle auf der Registerkarte Globale Tabellen zu Einstellungen > Replikation und klicken Sie auf Aktivieren.

  9. Melden Sie sich von diesem Konto ab (111122223333hier).

  10. Melden Sie sich bei der an AWS-Managementkonsole und öffnen Sie die DynamoDB-Konsole unter https://console.aws.amazon.com/dynamodb/für das zweite Konto (z. B.). 444455556666

  11. Wählen Sie für dieses Beispiel in der Navigationsleiste in der Regionsauswahl die Option US East (Nord-Virginia) aus.

  12. Die Konsole stellt sicher, dass die ausgewählte Region keine Tabelle mit demselben Namen enthält. Wenn eine Tabelle mit demselben Namen vorhanden ist, müssen Sie die vorhandene Tabelle löschen, bevor Sie eine neue Replikattabelle in der betreffenden Region erstellen können.

  13. Wählen Sie in der Dropdownliste neben Tabelle erstellen die Option Aus einem anderen Konto erstellen

  14. Gehen Sie auf der Seite Tabelle aus einem anderen Konto erstellen wie folgt vor:

    1. Fügen Sie arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable als Tabelle arn für die Quelltabelle hinzu.

    2. Fügen Sie in der Replikattabelle ARNs erneut arn:aws:dynamodb:us-east-2:111122223333:table/MusicTable den ARN der Quelltabelle hinzu. Wenn bereits mehrere Replikate als Teil einer globalen Tabelle mit mehreren Konten vorhanden sind, müssen Sie jedes vorhandene Replikat dem ReplicaTable ARN hinzufügen.

    3. Behalten Sie die anderen Standardeinstellungen bei und wählen Sie Submit.

  15. Auf der Registerkarte „Globale Tabellen“ für die Tabelle „Musik“ (und für alle anderen Replikattabellen) wird angezeigt, dass die Tabelle in mehreren Regionen repliziert wurde.

  16. So testen Sie die Replikation:

    1. Sie können jede Region, in der ein Replikat vorhanden ist, für diese Tabelle verwenden

    2. Wählen Sie Tabellenelemente erkunden aus.

    3. Wählen Sie Element erstellen aus.

    4. Geben Sie item_1 für Künstler und Song Value 1 für ein SongTitle.

    5. Wählen Sie Element erstellen aus.

    6. Überprüfen Sie die Replikation, indem Sie zu den anderen Regionen wechseln:

    7. Vergewissern Sie sich, dass die Tabelle Music das von Ihnen erstellte Objekt enthält.

Die folgenden Beispiele zeigen, wie Sie mithilfe von eine globale Tabelle mit mehreren Konten erstellen. AWS CLI Diese Beispiele veranschaulichen den vollständigen Arbeitsablauf für die Einrichtung der kontenübergreifenden Replikation.

CLI

Verwenden Sie die folgenden AWS CLI Befehle, um eine globale Tabelle mit mehreren Konten und kontenübergreifender Replikation zu erstellen.

# 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