기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon SQS 대기열로 메시지 속성 보내기
메시지 속성을 사용하여 메시지에 구조화된 메타데이터(예: 타임스탬프, 지리 공간 데이터, 서명 및 식별자)를 포함할 수 있습니다. 자세한 내용은 Amazon SQS 메시지 속성 단원을 참조하십시오.
예제 코드를 실행하기 전에 자격 AWS 증명을 설정했는지 확인합니다. 자세한 내용은 AWS SDK for Java 2.x 개발자 안내서의 개발을 위한 AWS 자격 증명 및 리전 설정을 참조하세요.
속성 정의
메시지에 대한 속성을 정의하려면 MessageAttributeValue 데이터 유형을 사용하는 다음 코드를 추가합니다. 자세한 내용은 메시지 속성 구성 요소 및 메시지 속성 데이터 형식 섹션을 참조하세요.
는 메시지 본문 및 메시지 속성 체크섬을 AWS SDK for Java 자동으로 계산하고 Amazon SQS가 반환하는 데이터와 비교합니다. 자세한 내용은 AWS SDK for Java 2.x 개발자 안내서 및 다른 프로그래밍 언어의 메시지 속성의 MD5 메시지 다이제스트 계산을 참조하세요.
- String
-
이 예제에서는 값 Jane을 사용하여 Name이라는 String 속성을 정의합니다.
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("Name", new MessageAttributeValue()
.withDataType("String")
.withStringValue("Jane"));
- Number
-
이 예제에서는 값 230.000000000000000001을 사용하여 AccurateWeight이라는 Number 속성을 정의합니다.
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("AccurateWeight", new MessageAttributeValue()
.withDataType("Number")
.withStringValue("230.000000000000000001"));
- Binary
-
이 예제에서는 초기화되지 않은 10바이트 어레이의 값을 사용하여 ByteArray라는 Binary 속성을 정의합니다.
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("ByteArray", new MessageAttributeValue()
.withDataType("Binary")
.withBinaryValue(ByteBuffer.wrap(new byte[10])));
- String (custom)
-
이 예제에서는 값 ABC123456을 사용하여 EmployeeId라는 사용자 지정 속성 String.EmployeeId를 정의합니다.
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("EmployeeId", new MessageAttributeValue()
.withDataType("String.EmployeeId")
.withStringValue("ABC123456"));
- Number (custom)
-
이 예제에서는 값 000123456을 사용하여 AccountId라는 사용자 지정 속성 Number.AccountId를 정의합니다.
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("AccountId", new MessageAttributeValue()
.withDataType("Number.AccountId")
.withStringValue("000123456"));
- Binary (custom)
-
이 예제에서는 초기화되지 않은 10바이트 어레이의 값을 사용하여 ApplicationIcon이라는 사용자 지정 속성 Binary.JPEG를 정의합니다.
final Map<String, MessageAttributeValue> messageAttributes = new HashMap<>();
messageAttributes.put("ApplicationIcon", new MessageAttributeValue()
.withDataType("Binary.JPEG")
.withBinaryValue(ByteBuffer.wrap(new byte[10])));
속성을 포함하는 메시지 전송
이 예에서는 메시지를 보내기 전에 SendMessageRequest에 속성을 추가합니다.
// Send a message with an attribute.
final SendMessageRequest sendMessageRequest = new SendMessageRequest();
sendMessageRequest.withMessageBody("This is my message text.");
sendMessageRequest.withQueueUrl(myQueueUrl);
sendMessageRequest.withMessageAttributes(messageAttributes);
sqs.sendMessage(sendMessageRequest);
선입선출(FIFO) 대기열로 메시지를 보내는 경우 메시지 그룹 ID를 제공한 후 sendMessage 메서드가 실행되는지 확인하세요.
SendMessage 대신 SendMessageBatch 메서드를 사용하는 경우 배치의 개별 메시지에 대해 메시지 속성을 지정해야 합니다.