

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

# Step Functions를 사용하여 Amazon SQS 대기열로 메시지 전송
<a name="connect-sqs"></a>

Step Functions 워크플로에 대한 다음 Amazon SQS API 작업과 예제 `Task` 상태 코드를 사용하여 Amazon SQS 대기열로 메시지를 보낼 수 있습니다.

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

Amazon SQS에서 메시지를 수신하는 방법에 대한 자세한 내용은 *Amazon Simple Queue Service 개발자 안내서*의 [메시지 수신 및 삭제](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/step-receive-delete-message.html)를 참조하세요.

다음 샘플에는 선택적 **MessageAttributes**를 통해 Amazon Simple Queue Service(Amazon SQS) 메시지를 전송하는 `Task` 상태(JSONata)가 포함됩니다.

```
{
 "StartAt": "Send to SQS",
 "States": {
   "Send to SQS": {
     "Type": "Task",
     "Resource": "arn:aws:states:::sqs:sendMessage",
     "Arguments": {
       "QueueUrl": "https://sqs.us-east-1.amazonaws.com/account-id/myQueue",
       "MessageBody": "{% $states.input.message %}",
       "MessageAttributes": {
         "my_attribute_no_1": {
           "DataType": "String",
           "StringValue": "attribute1"
         },
         "my_attribute_no_2": {
           "DataType": "String",
           "StringValue": "attribute2"
         }
       }
     },
     "End": true
    }
  }
}
```

다음 상태 머신에는 Amazon SQS 대기열에 게시한 다음 작업 토큰이 반환될 때까지 기다리는 `Task` 상태가 포함됩니다. [작업 토큰을 사용하여 콜백 대기](connect-to-resource.md#connect-wait-token)을(를) 참조하세요.

```
{  
   "StartAt":"Send message to SQS",
   "States":{  
      "Send message to SQS":{  
         "Type":"Task",
         "Resource":"arn:aws:states:::sqs:sendMessage.waitForTaskToken",
         "Arguments":{  
            "QueueUrl":"https://sqs.us-east-1.amazonaws.com/account-id/myQueue",
            "MessageBody":{  
               "Input" : "{% $states.input.message %}",
               "MyTaskToken" : "{% $states.context.Task.Token %}"
            }
         },
         "End":true
      }
   }
}
```

## 최적화된 Amazon SQS API
<a name="connect-sqs-api"></a>
+ [https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html](https://docs.aws.amazon.com/AWSSimpleQueueService/latest/APIReference/API_SendMessage.html)

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

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

## Amazon SQS 호출을 위한 IAM 정책
<a name="sqs-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": [
                "sqs:SendMessage"
            ],
            "Resource": [
                "arn:aws:sqs:us-east-1:123456789012:myQueueName"
            ]
        }
    ]
}
```

*동적 리소스*

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "sqs:SendMessage"
            ],
            "Resource": "*"
        }
    ]
}
```