

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

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

A ação DynamoDB(`dynamoDB`) grava toda ou parte de uma mensagem MQTT em uma tabela do Amazon DynamoDB.​ 

Você pode seguir um tutorial que mostra como criar e testar uma regra com uma ação do DynamoDB. Para obter mais informações, consulte [Tutorial: Armazenamento de dados do dispositivo em uma tabela do DynamoDB](iot-ddb-rule.md).

**nota**  
Esta regra grava dados não JSON no DynamoDB como dados binários. O console do DynamoDB exibe os dados como texto codificado em Base64.

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

Esta ação de regra tem os seguintes requisitos:
+ Uma função do IAM que AWS IoT você pode assumir para realizar a `dynamodb:PutItem` operação. Para obter mais informações, consulte [Conceder a uma AWS IoT regra o acesso que ela exige](iot-create-role.md).

  No AWS IoT console, você pode escolher ou criar uma função para permitir AWS IoT a execução dessa ação de regra.
+  Se você usa uma chave gerenciada pelo cliente AWS KMS key (chave KMS) para criptografar dados em repouso no DynamoDB, o serviço deve ter permissão para usar a chave KMS em nome do chamador. Para obter mais informações, consulte a [chave KMS gerenciada pelo cliente](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html#managed-cmk-customer-managed) no *Guia de conceitos básicos do Amazon DynamoDB*.

## Parâmetros
<a name="dynamodb-rule-action-parameters"></a>

Ao criar uma AWS IoT regra com essa ação, você deve especificar as seguintes informações:

`tableName`  
O nome da tabela do DynamoDB.  
Suporta [modelos de substituição](iot-substitution-templates.md): API e somente AWS CLI 

`hashKeyField`  
O nome da chave de hash (também chamada de chave de partição).  
Suporta [modelos de substituição](iot-substitution-templates.md): API e somente AWS CLI 

`hashKeyType`  
(Opcional) O tipo de dados da chave de hash (também chamada de chave de partição). Valores válidos: `STRING`, `NUMBER`.  
Suporta [modelos de substituição](iot-substitution-templates.md): API e somente AWS CLI 

`hashKeyValue`  
O valor da chave de hash. Considere usar um modelo de substituição, como `${topic()}` ou `${timestamp()}`.  
Compatível com [modelos de substituição](iot-substitution-templates.md): Sim

`rangeKeyField`  
(Opcional) O nome da chave de intervalo (também chamada de chave de classificação).  
Suporta [modelos de substituição](iot-substitution-templates.md): API e somente AWS CLI 

`rangeKeyType`  
(Opcional) O tipo de dados da chave de intervalo (também chamada de chave de classificação). Valores válidos: `STRING`, `NUMBER`.  
Suporta [modelos de substituição](iot-substitution-templates.md): API e somente AWS CLI 

`rangeKeyValue`  
(Opcional) O valor da chave de intervalo. Considere usar um modelo de substituição, como `${topic()}` ou `${timestamp()}`.  
Compatível com [modelos de substituição](iot-substitution-templates.md): Sim

`payloadField`  
(Opcional) O nome da coluna em que a carga útil é gravada. Se esse valor for omitido, a carga útil será gravada na coluna nomeada `payload`.  
Compatível com [modelos de substituição](iot-substitution-templates.md): Sim

`operation`  
(Opcional) O tipo de operação a executar. Valores válidos: `INSERT`, `UPDATE`, `DELETE`.  
Compatível com [modelos de substituição](iot-substitution-templates.md): Sim

`roleARN`  
O perfil do IAM que permite o acesso à tabela do DynamoDB. Para obter mais informações, consulte [Requisitos](#dynamodb-rule-action-requirements).  
Compatível com [modelos de substituição](iot-substitution-templates.md): Não

Os dados gravados na tabela do DynamoDB são o resultado da instrução SQL da regra.

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

O exemplo de JSON a seguir define uma ação do DynamoDB em uma regra. 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"
                }
            }
        ]
    }
}
```

## Consulte também
<a name="dynamodb-rule-action-see-also"></a>
+ [O que é o Amazon DynamoDB?](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/) no *Guia do desenvolvedor do Amazon DynamoDB*
+ [Conceitos básicos do DynamoDB](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html) no *Guia do desenvolvedor do Amazon DynamoDB*
+ [Tutorial: Armazenamento de dados do dispositivo em uma tabela do DynamoDB](iot-ddb-rule.md)