곧 AWS SDK for JavaScript(v2)에 대한 지원이 종료될 예정임을 알려드립니다
Amazon SQS에서 메시지 전송 및 수신
이 Node.js 코드 예제는 다음을 보여 줍니다.
대기열에 있는 메시지를 전송하는 방법.
대기열에 있는 메시지를 수신하는 방법.
대기열에 있는 메시지를 삭제하는 방법.
시나리오
이 예제에서는 일련의 Node.js 모듈을 사용하여 메시지를 전송하고 수신합니다. Node.js 모듈은 SDK for JavaScript로 AWS.SQS
클라이언트 클래스의 다음 메서드를 사용하여 메시지를 전송하고 수신합니다.
Amazon SQS 메시지에 대한 자세한 내용은 Amazon Simple Queue Service 개발자 안내서의 Amazon SQS 대기열로 메시지 전송 및 Amazon SQS 대기열에서 메시지 수신 및 삭제를 참조하세요.
사전 필수 작업
이 예제를 설정하고 실행하려면 먼저 이러한 작업들을 완료해야 합니다.
Node.js를 설치합니다. Node.js 설치에 대한 자세한 내용은 Node.js 웹 사이트
를 참조하세요. 사용자 자격 증명을 사용하여 공유 구성 파일을 생성합니다. 공유 자격 증명 파일 제공에 대한 자세한 내용은 공유 인증 자격 증명 파일에서 Node.js에 인증 자격 증명 로드 섹션을 참조하세요.
Amazon SQS 대기열을 생성합니다. 대기열 생성에 대한 예제는 Amazon SQS에서 대기열 사용 섹션을 참조하세요.
대기열로 메시지 전송
파일 이름이 sqs_sendmessage.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. Amazon SQS에 액세스하려면 AWS.SQS
서비스 객체를 생성합니다. 이 메시지를 전송하려는 대기열의 URL을 포함하여 메시지에 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서 메시지는 제목, 저자, 목록에 속해 있는 기간(주)을 포함하여 소설 베스트셀러 목록에 있는 책에 대한 세부 정보를 제공합니다.
sendMessage
메서드를 호출합니다. 콜백에서 메시지의 고유 ID가 반환됩니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var params = { // Remove DelaySeconds parameter and value for FIFO queues DelaySeconds: 10, MessageAttributes: { Title: { DataType: "String", StringValue: "The Whistler", }, Author: { DataType: "String", StringValue: "John Grisham", }, WeeksOn: { DataType: "Number", StringValue: "6", }, }, MessageBody: "Information about current NY Times fiction bestseller for week of 12/11/2016.", // MessageDeduplicationId: "TheWhistler", // Required for FIFO queues // MessageGroupId: "Group1", // Required for FIFO queues QueueUrl: "SQS_QUEUE_URL", }; sqs.sendMessage(params, function (err, data) { if (err) { console.log("Error", err); } else { console.log("Success", data.MessageId); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node sqs_sendmessage.js
이 샘플 코드는 GitHub
대기열에서 메시지 수신 및 삭제
파일 이름이 sqs_receivemessage.js
인 Node.js 모듈을 생성합니다. 위와 같이 SDK를 구성해야 합니다. Amazon SQS에 액세스하려면 AWS.SQS
서비스 객체를 생성합니다. 메시지를 수신하려는 대기열의 URL을 포함하여 메시지에 필요한 파라미터를 포함하는 JSON 객체를 생성합니다. 이 예제에서 파라미터는 모든 메시지 속성의 수신 및 10개 이하의 메시지 수신을 지정합니다.
receiveMessage
메서드를 호출합니다. 콜백에서 나중에 해당 메시지를 삭제하기 위해 사용하는 각 메시지의 ReceiptHandle
을 검색할 수 있는 Message
객체의 배열이 반환됩니다. 메시지를 삭제하는 데 필요한 파라미터를 포함하는 또 다른 JSON 객체를 생성합니다. 이 파라미터는 대기열의 URL 및 ReceiptHandle
값입니다. deleteMessage
메서드를 호출하여 수신한 메시지를 삭제합니다.
// Load the AWS SDK for Node.js var AWS = require("aws-sdk"); // Set the region AWS.config.update({ region: "REGION" }); // Create an SQS service object var sqs = new AWS.SQS({ apiVersion: "2012-11-05" }); var queueURL = "SQS_QUEUE_URL"; var params = { AttributeNames: ["SentTimestamp"], MaxNumberOfMessages: 10, MessageAttributeNames: ["All"], QueueUrl: queueURL, VisibilityTimeout: 20, WaitTimeSeconds: 0, }; sqs.receiveMessage(params, function (err, data) { if (err) { console.log("Receive Error", err); } else if (data.Messages) { var deleteParams = { QueueUrl: queueURL, ReceiptHandle: data.Messages[0].ReceiptHandle, }; sqs.deleteMessage(deleteParams, function (err, data) { if (err) { console.log("Delete Error", err); } else { console.log("Message Deleted", data); } }); } });
예제를 실행하려면 명령줄에서 다음을 입력합니다.
node sqs_receivemessage.js
이 샘플 코드는 GitHub