강의

멘토링

로드맵

Inflearn brand logo image

인프런 커뮤니티 질문&답변

장산님의 프로필 이미지
장산

작성한 질문수

[리뉴얼] React로 NodeBird SNS 만들기

Lambda로 이미지 리사이징 하기

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

작성

·

362

·

수정됨

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로 하신 거 맞죠?

장산님의 프로필 이미지
장산
질문자

네 똑같이 했습니다

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만 넣으세요 저 칸에

장산님의 프로필 이미지
장산
질문자

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

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

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

피일명이 index.js면

index.handler 해보세요

제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

20분 58초에 나오네요

장산님의 프로필 이미지
장산

작성한 질문수

질문하기