

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
<a name="V2globaltables_MA.tutorial"></a>

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

## Creare una tabella globale multi-account utilizzando la console DynamoDB
<a name="create-ma-gt-console"></a>

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/](https://console.aws.amazon.com/dynamodb/)all'indirizzo per il primo account (ad esempio). *111122223333*

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

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

1. Scegliere **Create Table (Crea tabella)**.

1. Nella pagina **Crea tabella**:

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

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

   1. Per **Chiave di ordinamento**, immetti **SongTitle**.

   1. Mantieni le restanti impostazioni predefinite e seleziona **Crea tabella**.

1. Aggiungi la seguente politica delle risorse alla tabella

------
#### [ 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. 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.

1. 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.**

1. Esci da questo account (*111122223333*qui).

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

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

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

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

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

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

   1. **Mantieni le altre impostazioni predefinite e scegli Invia.**

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

1. Per testare la replica:

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

   1. Scegli **Explore table items** (Esplora elementi della tabella).

   1. Scegli **Crea elemento**.

   1. Inserisci **item\$11** per **Artista** e **Song Value 1** per **SongTitle**.

   1. Scegli **Crea elemento**.

   1. Verifica la replica passando alle altre Regioni:

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

## Crea una tabella globale multi-account utilizzando il AWS CLI
<a name="ma-gt-cli"></a>

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
```

------