작성한 질문수
[리뉴얼] React로 NodeBird SNS 만들기
Lambda로 이미지 리사이징 하기
작성
·
362
수정됨
0
안녕하세요 제로초님
람다 런타임 설정 편집부분 화면이 좀 바뀐거같아서 질문 남깁니다! 저는 이렇게 보입니다
일단 index를 exports로 바꿨는데 이대로 그냥 저장하고,
진행했더니 thumb파일도 안만들어지고 이미지도 평소에 잘뜨던게 undefined로 떠서 문제를 찾아보고 있었습니다
답변 1
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가 떴습니다
제가 뭐 따로 추가로 해야하는게 있을까요?
피일명이 index.js면
index.handler 해보세요
20분 58초에 나오네요
네 똑같이 했습니다