

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

# Step Functions를 사용하여 DynamoDB CRUD 작업 수행
<a name="connect-ddb"></a>

Step Functions를 DynamoDB와 통합하여 DynamoDB 테이블에서 CRUD 작업을 수행할 수 있습니다. 이 페이지에는 지원되는 DynamoDB API가 나열되어 있으며 DynamoDB에서 항목을 검색할 수 있는 예제 `Task` 상태가 나와 있습니다.

Step Functions의 AWS서비스와 통합하는 방법에 대한 자세한 내용은 [ 서비스 통합](integrate-services.md) 및 섹션을 참조하세요[Step Functions의 서비스 API에 파라미터 전달](connect-parameters.md).

**최적화된 DynamoDB 통합의 주요 기능**  
[요청 및 응답](connect-to-resource.md#connect-default) 통합 패턴에 대한 구체적인 최적화는 없습니다.
[작업 토큰을 사용하여 콜백 대기](connect-to-resource.md#connect-wait-token) 통합 패턴은 지원되지 않습니다.
최적화된 통합을 통해 [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html), [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html), [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html) 및 [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html) API 작업만 사용할 수 있습니다. 와 같은 다른 API 작업은 DynamoDBAWS SDK 통합을 사용하여 [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_CreateTable.html) 사용할 수 있습니다.

다음은 DynamoDB에서 보낸 메시지를 검색하는 예제 `Task` 상태입니다.

```
"Read next Message from DynamoDB": {
    "Type": "Task",
    "Resource": "arn:aws:states:::dynamodb:getItem",
    "Arguments": {
        "TableName": "DYNAMO_DB_TABLE_NAME",
        "Key": {
            "MessageId": {"S": "{% $List[0] %}"}
        }
    }
```

작업 예제에서 이 상태를 보려면 [Lambda, DynamoDB 및 Amazon SQS를 사용하여 데이터 레코드 전송](sample-project-transfer-data-sqs.md) 스타터 템플릿을 참조하세요.

**예외 접두사 차이**  
표준 DynamoDB 연결에 오류가 발생하면 예외 접두사는 `DynamoDb`(혼합 대소문자)가 됩니다.  
최적화된 통합을 위해 예외 접두사는 `DynamoDB`(대문자 `DB`)입니다.

**입력 또는 결과 데이터의 할당량**  
서비스 간에 데이터를 전송하거나 수신할 때 작업의 최대 입력 또는 결과는 UTF-8 인코딩 문자열로 256KiB의 데이터입니다. [상태 머신 실행과 관련된 할당량](service-quotas.md#service-limits-state-machine-executions)을(를) 참조하세요.

## 최적화된 DynamoDB API
<a name="connect-dynamodb-api"></a>
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_GetItem.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_PutItem.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_DeleteItem.html)
+ [https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html](https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_UpdateItem.html)

**Step Functions의 파라미터는 PascalCase로 표현됩니다.**  
기본 서비스 API가 API 작업 `startSyncExecution`과 같은 camelCase에 있더라도 `StateMachineArn`과 같은 파라미터를 PascalCase에 지정합니다.

## DynamoDB 호출을 위한 IAM 정책
<a name="dynamo-iam"></a>

다음 예제 템플릿은가 상태 시스템 정의의 리소스를 기반으로 IAM 정책을 AWS Step Functions생성하는 방법을 보여줍니다. 자세한 내용은 [Step Functions가 통합 서비스용 IAM 정책을 생성하는 방법](service-integration-iam-templates.md) 및 [Step Functions에서 서비스 통합 패턴 검색](connect-to-resource.md) 섹션을 참조하세요.

*정적 리소스*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem"
            ],
            "Resource": [
                "arn:aws:dynamodb:us-east-1:123456789012:table/myTableName"
            ]
        }
    ]
}
```

*동적 리소스*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "dynamodb:GetItem",
                "dynamodb:PutItem",
                "dynamodb:UpdateItem",
                "dynamodb:DeleteItem"
            ],
            "Resource": "*"
        }
    ]
}
```

모든 DynamoDB API 작업에 대한 IAM 정책에 대한 자세한 내용은 *Amazon DynamoDB 개발자 안내서*의 [DynamoDB의 IAM 정책](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/using-identity-based-policies.html)을 참조하세요. 또한 DynamoDB용 PartiQL의 IAM 정책에 대한 자세한 내용은 *Amazon DynamoDB 개발자 안내서*의 [DynamoDB용 PartiQL의 IAM 정책](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/ql-iam.html)을 참조하세요.