

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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

DynamoDB(`dynamoDB`) 작업은 MQTT 메시지의 전체 또는 일부를 Amazon DynamoDB 테이블에 씁니다.

DynamoDB 작업을 사용하여 규칙을 생성하고 테스트하는 방법을 자습서에서 확인할 수 있습니다. 자세한 내용은 [자습서: DynamoDB 테이블에 디바이스 데이터 저장](iot-ddb-rule.md) 섹션을 참조하세요.

**참고**  
이 규칙은 비 JSON 데이터를 이진 데이터로 DynamoDB에 씁니다. DynamoDB 콘솔은 데이터를 Base64 인코딩된 텍스트로 표시합니다.

## 요구 사항
<a name="dynamodb-rule-action-requirements"></a>

이 규칙 작업은 다음 요구 사항을 충족해야 합니다.
+ `dynamodb:PutItem` 작업을 수행하기 위해가 맡을 AWS IoT 수 있는 IAM 역할입니다. 자세한 내용은 [AWS IoT 규칙에 필요한 액세스 권한 부여](iot-create-role.md) 단원을 참조하십시오.

   AWS IoT 콘솔에서 역할을 선택하거나 생성하여가이 규칙 작업을 수행하도록 허용할 수 AWS IoT 있습니다.
+  고객 관리형 AWS KMS key (KMS 키)를 사용하여 DynamoDB에서 저장 데이터를 암호화하는 경우 호출자를 대신하여 KMS 키를 사용할 수 있는 권한이 서비스에 있어야 합니다. 자세한 내용은 *Amazon DynamoDB 시작 안내서*의 [고객 관리형 KMS 키](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/encryption.howitworks.html#managed-cmk-customer-managed)를 참조하세요.

## 파라미터
<a name="dynamodb-rule-action-parameters"></a>

이 작업으로 AWS IoT 규칙을 생성할 때 다음 정보를 지정해야 합니다.

`tableName`  
DynamoDB 테이블의 이름입니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: API 및 AWS CLI 만 해당

`hashKeyField`  
해시 키(파티션 키라고도 함)의 이름입니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: API 및 AWS CLI 만 해당

`hashKeyType`  
(선택 사항) 해시 키(파티션 키라고도 함)의 데이터 형식입니다. 유효한 값: `STRING`, `NUMBER`.  
[대체 템플릿](iot-substitution-templates.md) 지원: API 및 AWS CLI 만 해당

`hashKeyValue`  
해시 키의 값입니다. `${topic()}` 또는 `${timestamp()}` 같은 대체 템플릿 사용을 고려하세요.  
[대체 템플릿](iot-substitution-templates.md) 지원: 예

`rangeKeyField`  
(선택 사항) 범위 키(정렬 키라고도 함)의 이름입니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: API 및 AWS CLI 만 해당

`rangeKeyType`  
(선택 사항) 범위 키(정렬 키라고도 함)의 데이터 형식입니다. 유효한 값: `STRING`, `NUMBER`.  
[대체 템플릿](iot-substitution-templates.md) 지원: API 및 AWS CLI 만 해당

`rangeKeyValue`  
(선택 사항) 범위 키의 값입니다. `${topic()}` 또는 `${timestamp()}` 같은 대체 템플릿 사용을 고려하세요.  
[대체 템플릿](iot-substitution-templates.md) 지원: 예

`payloadField`  
(선택 사항) 페이로드가 기록될 열 이름입니다. 이 값을 생략할 경우 페이로드가 `payload`라는 열에 기록됩니다.  
[대체 템플릿](iot-substitution-templates.md) 지원: 예

`operation`  
(선택 사항) 수행할 작업의 유형입니다. 유효한 값: `INSERT`, `UPDATE`, `DELETE`.  
[대체 템플릿](iot-substitution-templates.md) 지원: 예

`roleARN`  
DynamoDB 테이블에 대한 액세스를 허용하는 IAM 역할입니다. 자세한 내용은 [요구 사항](#dynamodb-rule-action-requirements) 단원을 참조하세요.  
[대체 템플릿](iot-substitution-templates.md) 지원: 아니요

DynamoDB 테이블에 기록된 데이터는 규칙 내 SQL 문의 결과입니다.

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

다음 JSON 예제는 AWS IoT 규칙에서 DynamoDB 작업을 정의합니다.

```
{
    "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"
                }
            }
        ]
    }
}
```

## 다음 사항도 참조하세요.
<a name="dynamodb-rule-action-see-also"></a>
+ *Amazon DynamoDB 개발자 안내서*의 [Amazon DynamoDB란 무엇입니까?](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/)
+ *Amazon DynamoDB 개발자 안내서*의 [DynamoDB 시작하기](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/GettingStartedDynamoDB.html)
+ [자습서: DynamoDB 테이블에 디바이스 데이터 저장](iot-ddb-rule.md)