• 카테고리

    질문 & 답변
  • 세부 분야

    풀스택

  • 해결 여부

    미해결

람다강의에서 런타임 설정 편집부분

23.04.28 15:59 작성 23.04.28 16:02 수정 조회수 272

0

안녕하세요 제로초님

람다 런타임 설정 편집부분 화면이 좀 바뀐거같아서 질문 남깁니다! 저는 이렇게 보입니다

스크린샷 2023-04-28 오후 3.54.36.png일단 index를 exports로 바꿨는데 이대로 그냥 저장하고,

진행했더니 thumb파일도 안만들어지고 이미지도 평소에 잘뜨던게 undefined로 떠서 문제를 찾아보고 있었습니다

스크린샷 2023-04-28 오후 4.01.47.png

답변 1

답변을 작성해보세요.

0

handler만 쓰시면 됩니다.

https://github.com/ZeroCho/react-nodebird/blob/master/https/lambda/index.js

이렇게 exports.handler로 하신 거 맞죠?

장산님의 프로필

장산

질문자

2023.04.28

네 똑같이 했습니다

const AWS = require("aws-sdk");
const sharp = require("sharp");

const s3 = new AWS.S3();

exports.handler = async (event, context, callback) => {
  const Bucket = event.Records[0].s3.bucket.name; // react-sansbook-aws
  const Key = decodeURIComponent(event.Records[0].s3.object.key); // original/12312312_abc.png
  console.log(Bucket, Key);
  const filename = Key.split("/")[Key.split("/").length - 1];
  const ext = Key.split(".")[Key.split(".").length - 1].toLowerCase();
  const requiredFormat = ext === "jpg" ? "jpeg" : ext;
  console.log("filename", filename, "ext", ext);

  try {
    const s3Object = await s3.getObject({ Bucket, Key }).promise();
    console.log("original", s3Object.Body.length);
    const resizedImage = await sharp(s3Object.Body)
      .resize(400, 400, { fit: "inside" })
      .toFormat(requiredFormat)
      .toBuffer();
    await s3
      .putObject({
        Bucket,
        Key: `thumb/${filename}`,
        Body: resizedImage,
      })
      .promise();
    console.log("put", resizedImage.length);
    return callback(null, `thumb/${filename}`);
  } catch (error) {
    console.error(error);
    return callback(error);
  }
};

네 handler만 넣으세요 저 칸에

장산님의 프로필

장산

질문자

2023.04.28

handler만 넣었더니 에러가 bad handler가 떴습니다

스크린샷 2023-04-28 오후 6.04.09.png스크린샷 2023-04-28 오후 6.03.37.png제가 뭐 따로 추가로 해야하는게 있을까요?

피일명이 index.js면

index.handler 해보세요

20분 58초에 나오네요