πŸ“Œ Tutorial - Step 2

sqs ν”„λ‘œμ νŠΈ 생성

Untitled

🚨 ( issues 3 ) κΆŒν•œ 였λ₯˜ β­•

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,
};

ν΄λΌμš°λ“œμ›ŒμΉ˜ μž…λ ₯κ°’ 확인

Untitled