

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

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

La acción DynamoDB (`dynamoDB`) escribe la totalidad o parte de un mensaje MQTT en una tabla de Amazon DynamoDB. 

Puede seguir un tutorial que muestra cómo crear y probar una regla con una acción de DynamoDB. Para obtener más información, consulte [Tutorial: Almacenamiento de datos de dispositivos en una tabla de DynamoDB](iot-ddb-rule.md).

**nota**  
Esta regla escribe datos no JSON en DynamoDB como datos binarios. La consola de DynamoDB mostrará los datos como texto codificado en Base64.

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

Esta regla tiene los siguientes requisitos:
+ Un rol de IAM que AWS IoT puede asumir para realizar la operación. `dynamodb:PutItem` Para obtener más información, consulte [Otorgar a una AWS IoT regla el acceso que requiere](iot-create-role.md).

  En la AWS IoT consola, puede elegir o crear un rol que permita AWS IoT realizar esta acción de regla.
+  Si utiliza una clave KMS gestionada AWS KMS key por el cliente para cifrar los datos en reposo en DynamoDB, el servicio debe tener permiso para utilizar la clave KMS en nombre de la persona que llama. Para obtener más información, consulte la [clave de KMS gestionada por el cliente](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html#managed-cmk-customer-managed) en la *Guía de introducción de Amazon DynamoDB*.

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

Al crear una AWS IoT regla con esta acción, debe especificar la siguiente información:

`tableName`  
El nombre de la tabla de DynamoDB.  
Admite [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente

`hashKeyField`  
El nombre de la clave hash (también denominada clave de partición).  
Admite [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente

`hashKeyType`  
(Opcional) El tipo de datos de la clave hash (también denominado clave de partición). Valores válidos: `STRING`, `NUMBER`.  
Admite [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente

`hashKeyValue`  
El valor de la clave hash. Considere la posibilidad de utilizar una plantilla de sustitución como `${topic()}` o `${timestamp()}`.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`rangeKeyField`  
(Opcional) El nombre de la clave de rango (también denominada clave de clasificación).  
Admite [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente

`rangeKeyType`  
(Opcional) El tipo de datos de la clave de rango (también denominada clave de clasificación). Valores válidos: `STRING`, `NUMBER`.  
Admite [plantillas de sustitución](iot-substitution-templates.md): API y AWS CLI únicamente

`rangeKeyValue`  
(Opcional) El valor de la clave de rango. Considere la posibilidad de utilizar una plantilla de sustitución como `${topic()}` o `${timestamp()}`.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`payloadField`  
(Opcional) El nombre de la columna donde se escribe la carga útil. Si omite este valor, la carga útil se escribe en la columna denominada `payload`.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`operation`  
(Opcional) El tipo de operación que se va a realizar. Valores válidos: `INSERT`, `UPDATE`, `DELETE`.  
Admite [plantillas de sustitución](iot-substitution-templates.md): Sí

`roleARN`  
El rol de IAM que permite tener acceso a la tabla de DynamoDB. Para obtener más información, consulte [Requisitos](#dynamodb-rule-action-requirements).  
Admite [plantillas de sustitución](iot-substitution-templates.md): No

Los datos que se escriben en la tabla de DynamoDB son el resultado de la instrucción SQL de la regla.

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

El siguiente ejemplo de JSON define una acción de DynamoDB en una regla. 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"
                }
            }
        ]
    }
}
```

## Véase también
<a name="dynamodb-rule-action-see-also"></a>
+ [¿Qué es Amazon DynamoDB?](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/) en la *Guía para desarrolladores de Amazon DynamoDB.*
+ [Introducción a DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html) en la *Guía para desarrolladores de Amazon DynamoDB*
+ [Tutorial: Almacenamiento de datos de dispositivos en una tabla de DynamoDB](iot-ddb-rule.md)