

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

# DynamoDB
<a name="dynamodb-rule-action"></a>

L’operazione Dynamo DB (`dynamoDB`) scrive, completamente o in parte, un messaggio MQTT a una tabella Amazon DynamoDB. 

È possibile seguire un tutorial che mostra come creare una regola con un'operazione Dynamo DB. Per ulteriori informazioni, consulta [Tutorial: Archiviazione dei dati del dispositivo in una tabella DynamoDB](iot-ddb-rule.md).

**Nota**  
Questa regola scrive dati non JSON a Dynamo DB come dati binari. La console Dynamo DB mostra i dati come testo con codifica Base64.

## Requisiti
<a name="dynamodb-rule-action-requirements"></a>

Questa operazione della regola presenta i seguenti requisiti:
+ Un ruolo IAM che AWS IoT può assumere per eseguire l'operazione. `dynamodb:PutItem` Per ulteriori informazioni, consulta [Concedere a qualsiasi AWS IoT regola l'accesso richiesto](iot-create-role.md).

  Nella AWS IoT console, puoi scegliere o creare un ruolo che consenta di AWS IoT eseguire questa azione relativa alla regola.
+  Se si utilizza una chiave gestita dal cliente AWS KMS key (chiave KMS) per crittografare i dati inattivi in DynamoDB, il servizio deve disporre dell'autorizzazione a utilizzare la chiave KMS per conto del chiamante. Per ulteriori informazioni, consulta [Chiave KMS gestita dal cliente](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html#managed-cmk-customer-managed) nella *Guida introduttiva di Amazon DynamoDB*.

## Parameters
<a name="dynamodb-rule-action-parameters"></a>

Quando si crea una AWS IoT regola con questa azione, è necessario specificare le seguenti informazioni:

`tableName`  
Nome della tabella DynamoDB.  
Supporta [modelli sostitutivi](iot-substitution-templates.md): solo API AWS CLI 

`hashKeyField`  
Nome della chiave hash (detta anche chiave di partizione).  
Supporta [modelli sostitutivi: API](iot-substitution-templates.md) e solo AWS CLI 

`hashKeyType`  
(Facoltativo) Tipo di dati della chiave hash (detta anche chiave di partizione). Valori validi: `STRING`, `NUMBER`.  
Supporta [modelli sostitutivi: API](iot-substitution-templates.md) e solo AWS CLI 

`hashKeyValue`  
Valore della chiave hash. Prendere in considerazione l'utilizzo di un modello di sostituzione come `${topic()}` o `${timestamp()}`.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`rangeKeyField`  
(Facoltativo) Nome della chiave di intervallo (detta anche chiave di ordinamento).  
Supporta [modelli sostitutivi: API](iot-substitution-templates.md) e solo AWS CLI 

`rangeKeyType`  
(Facoltativo) Tipo di dati della chiave di intervallo (detta anche chiave di ordinamento). Valori validi: `STRING`, `NUMBER`.  
Supporta [modelli sostitutivi: API](iot-substitution-templates.md) e solo AWS CLI 

`rangeKeyValue`  
(Facoltativo) Valore della chiave di intervallo. Prendere in considerazione l'utilizzo di un modello di sostituzione come `${topic()}` o `${timestamp()}`.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`payloadField`  
(Facoltativo) Nome del campo in cui viene scritto il payload. Se questo valore viene omesso, il payload viene scritto nella colonna denominata `payload`.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`operation`  
(Facoltativo) Tipo di operazione da eseguire. Valori validi: `INSERT`, `UPDATE`, `DELETE`.  
Supporta [modelli di sostituzione](iot-substitution-templates.md): sì

`roleARN`  
Il ruolo IAM che permette l'accesso alla tabella DynamoDB. Per ulteriori informazioni, consulta [Requisiti](#dynamodb-rule-action-requirements).  
Supporta [modelli di sostituzione](iot-substitution-templates.md): no

I dati scritti nella tabella Dynamo DB sono il risultato dell'istruzione SQL della regola.

## Esempi
<a name="dynamodb-rule-action-examples"></a>

Il seguente esempio JSON definisce un'azione DynamoDB in una regola. AWS IoT 

```
{
    "topicRulePayload": {
        "sql": "SELECT * AS message FROM 'some/topic'", 
        "ruleDisabled": false,
        "awsIotSqlVersion": "2016-03-23",
        "actions": [
            {
                "dynamoDB": {
                    "tableName": "my_ddb_table",
                    "hashKeyField": "key",
                    "hashKeyValue": "${topic()}",
                    "rangeKeyField": "timestamp",
                    "rangeKeyValue": "${timestamp()}",
                    "roleArn": "arn:aws:iam::123456789012:role/aws_iot_dynamoDB"
                }
            }
        ]
    }
}
```

## Consulta anche
<a name="dynamodb-rule-action-see-also"></a>
+ [Cos'è Amazon DynamoDB?](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/) nella *Guida per gli sviluppatori di Amazon DynamoDB*
+ [Guida introduttiva su DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html) nella *Guida per gli sviluppatori di Amazon DynamoDB*
+ [Tutorial: Archiviazione dei dati del dispositivo in una tabella DynamoDB](iot-ddb-rule.md)