강의

멘토링

로드맵

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

huhu님의 프로필 이미지
huhu

작성한 질문수

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

Lambda로 이미지 리사이징 하기

핸들러 설정이 보이지 않습니다ㅠㅠ

작성

·

186

0

lambda - 구성 - 일반 구성에서 다른 부분은 바꾸었으나

핸들러 입력하는 부분이 없습니다...

찾아봐도 안 보이는데 혹시 바뀌어서

설정하는 부분이 없어진걸까요...?

이것 때문인지 thumb폴더가 생성이 안되어서 난감하네요

퀴즈

EC2 인스턴스에 배포된 서버에서 GitHub의 최신 소스 코드를 받아오기 위해 주로 사용하는 Git 명령어는 무엇일까요?

git push

git add

git commit

git pull

답변 1

0

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

핸들러는 코드 -> 런타임 설정에 있습니다.

huhu님의 프로필 이미지
huhu
질문자

앗 기본으로 index.handler로 되어있는 거 보니 그 문제가 아니었나보네요ㅜㅜㅜ

왜 thumb폴더가 안 생기는지 이유를 모르겠습니다...

s3 연결도 잘 된 것 같고 lambda쪽 로그를 살펴봐도 별다른 에러가 없는 것 같은데

무엇이 문제일까요??

며칠째 무엇을 놓쳤나 싶어 계속 삭제하고 만들고를 반복 중입니다..!

로그

lambda/index.js

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-nodebird-aws-s3
    const Key = encodeURIComponent(event.Records[0].s3.object.key); // original/2313213_abc.png
    const filename = Key.split("/")[Key.split("/").length - 1];
    const ext = Key.split(".")[Key.split(".").length - 1].toLowerCase();
    const requiredFormat = ext === "jpg" ? "jpeg" : ext;
    try {
        const s3Object = await s3.getObject({ Bucket, Key }).promise();
        const resizedImage = await sharp(s3Object.Body)
            .resize(400, 400, {
                fit: "inside",
            })
            .toFormat(requiredFormat)
            .toBuffer();
        await s3
            .putObject({
                Bucket,
                Key: `thumb/${filename}`,
                Body: resizedImage,
            })
            .promise();
        return callback(null, `thumb/${filename}`);
    } catch (error) {
        console.error(error);
        return callback(error);
    }
};
제로초(조현영)님의 프로필 이미지
제로초(조현영)
지식공유자

흠, 그러게요. 에러가 없네요. 람다 모니터링쪽에서도 전부 다 성공으로 뜨는 건가요?

callback 위에 console.log 하나 넣어서 저기까지 실행되나, filename은 뭘로 되어있나 찍어보세요.

huhu님의 프로필 이미지
huhu
질문자

네 람다 모니터링엔 다 비슷하게 에러 없이 뜹니다!

콘솔로 찍었는데 나오지 않네요...ㅠㅠㅠ

lambda설정에서 실수를 한 걸까요..?

console.log("lambda 테스트", filename);
return callback(null, `thumb/${filename}`);
huhu님의 프로필 이미지
huhu
질문자

혹시 권한 문제일까 싶어 첨부합니다!

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

콘솔 여러 군데 넣어서 어디까지 실행되는지 한 번 체크해보시면 좋을 것 같습니다.

huhu님의 프로필 이미지
huhu

작성한 질문수

질문하기