DynamoDB
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.
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
Esta ação de regra tem os seguintes requisitos:
-
Um perfil do IAM que AWS IoT pode assumir a execução da operação
dynamodb:PutItem
. Para obter mais informações, consulte Conceder a uma regra AWS IoT o acesso que ela exige.No console AWS IoT, você pode escolher ou criar uma função para permitir que AWS IoT execute essa ação de regra.
-
Se você usar uma AWS KMS key chave KMS gerenciada pelo cliente para criptografar dados em repouso no DynamoDB, o serviço deverá ter permissão para usar a chave KMS em nome do chamador. Para obter mais informações, consulte a chave KMS gerenciada pelo cliente no Guia de conceitos básicos do Amazon DynamoDB.
Parâmetros
Ao criar uma regra AWS IoT com esta ação, você deve especificar as seguintes informações:
tableName
-
O nome da tabela do DynamoDB.
Compatível com modelos de substituição: API e AWS CLI somente
hashKeyField
-
O nome da chave de hash (também chamada de chave de partição).
Compatível com modelos de substituição: API e AWS CLI somente
hashKeyType
-
(Opcional) O tipo de dados da chave de hash (também chamada de chave de partição). Valores válidos:
STRING
,NUMBER
.Compatível com modelos de substituição: API e AWS CLI somente
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: Sim
rangeKeyField
-
(Opcional) O nome da chave de intervalo (também chamada de chave de classificação).
Compatível com modelos de substituição: API e AWS CLI somente
rangeKeyType
-
(Opcional) O tipo de dados da chave de intervalo (também chamada de chave de classificação). Valores válidos:
STRING
,NUMBER
.Compatível com modelos de substituição: API e AWS CLI somente
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: 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: Sim
operation
-
(Opcional) O tipo de operação a executar. Valores válidos:
INSERT
,UPDATE
,DELETE
.Compatível com modelos de substituição: Sim
roleARN
-
O perfil do IAM que permite o acesso à tabela do DynamoDB. Para obter mais informações, consulte Requisitos.
Compatível com modelos de substituição: Não
Os dados gravados na tabela do DynamoDB são o resultado da instrução SQL da regra.
Exemplos
O seguinte exemplo de JSON mostra como definir 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
-
O que é o Amazon DynamoDB? no Guia do desenvolvedor do Amazon DynamoDB
-
Conceitos básicos do DynamoDB no Guia do desenvolvedor do Amazon DynamoDB
-
Tutorial: Armazenamento de dados do dispositivo em uma tabela do DynamoDB