Amazon SQS 대기열에 메시지 속성 전송 - Amazon Simple Queue Service

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

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"));
참고

기본 데이터 입력이 Number이므로 ReceiveMessage 메서드가 123456을 반환합니다.

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 메서드를 사용하는 경우 배치의 개별 메시지에 대해 메시지 속성을 지정해야 합니다.