sqs νλ‘μ νΈ μμ±
serverless.yaml νμΌ λ¦¬μ μΆκ°
provider:
name: aws
runtime: nodejs18.x
+ region: ap-northeast-2
index.js νμΌ μμ
const { SQSClient, SendMessageCommand } = require("@aws-sdk/client-sqs");
const sqs = new SQSClient();
const producer = async (event) => {
let statusCode = 200;
let message;
if (!event.body) {
return {
statusCode: 400,
body: JSON.stringify({
message: "No body was found",
}),
};
}
try {
await sqs.send(new SendMessageCommand({
QueueUrl: process.env.QUEUE_URL,
MessageBody: event.body,
MessageAttributes: {
AttributeName: {
StringValue: "Attribute Value",
DataType: "String",
},
},
}));
message = "Message accepted!";
} catch (error) {
console.log(error);
message = error;
statusCode = 500;
}
return {
statusCode,
body: JSON.stringify({
message,
}),
};
};
/// μμ λΆλΆ ///
const consumer = async (event) => {
for (const record of event.Records) {
console.log("Message Body: ", record.body);
// TODO: Step 1μ μ°Έκ³ νμ¬, +1 λ₯Ό νλ μ½λλ₯Ό λ£μΌμΈμ
if (record.body) {
let body = JSON.parse(record.body);
inputValue = parseInt(body);
outputValue = inputValue + 1;
}
const message = `λ©μμ§λ₯Ό λ°μμ΅λλ€. μ
λ ₯κ°: ${inputValue}, κ²°κ³Ό: ${outputValue}`
console.log(message)
}
};
/// μμ λΆλΆ ///
module.exports = {
producer,
consumer,
};
ν΄λΌμ°λμμΉ μ λ ₯κ° νμΈ