SAM Lambda S3이벤트 트리거, MongoDB 접근코드
상태: Done 생성일: 2023년 1월 10일 오후 2:18 유형: 코드
nodejs 16 으로 세팅함
bucket 버킷에 test 이미지 파일을 올려놓음
AWS의 SDK를 사용
AWS 서비스용 javascript API 를 제공한다.
AWS SDK for JavaScript란 무엇인가요?
const AWS = require('aws-sdk');
const s3 = new AWS.S3(); // https://docs.aws.amazon.com/AmazonS3/latest/API/API_Operations_Amazon_Simple_Storage_Service.htmlMongoDB 라이브러리 사용
MongoClient 라이브러리를 사용해 mongodb 에 연결할수있다.
데이터를 검색하는 경우 ObjectId를 사용하기 위해선 라이브러리를 추가로 설치해야한다
const MongoClient = require('mongodb').MongoClient;
const ObjectId = require('mongodb').ObjectId;mongoose 가 많이 사용되는 라이브러리 같은데 스키마를 사용할 수 있다는게 장점이라고 한다. 여기선 필요없으니 mongodb로 사용해도 충분한것같다.
app.js
lambdaHandler
event에는 객체의 경로에 대한 정보가 포함되어있다.
key가 객체의 경로고 문자열을 split 으로 쪼개서 필요한 폴더의 이름을 추출해 mongodbConnect 함수로 넘겨주었다.
s3.getObject 는 키값으로 버킷에서 해당 객체를 조회한다.
mongodbConnect
MongoDB를 연결하고 필요한 update처리를 한다
template.yaml
CloudFormation 방식으로, 스택이라는 리소스를 생성하며 aws 로 배포가능하게 해줌
템플릿은 자신에게 맞게 잘 작성해주어야함 아래는 그냥 예시임
event.json
로컬 테스트용도로 사용함
위와 같이 코드를 작성후 람다를 실행하였을때 content type 을 가져오는걸 확인할 수 있었음
참고
Last updated