티스토리 뷰

반응형

AWS Lambda로 크롤링 데이터 Firebase에 데이터 쌓는 법 

1편 - Lambda 설정

2편 - 로컬 테스트


 

이제 설정은 끝났고 firebase에 데이터 쌓는 방법을 시도해보겠습니다.

Lambda에 올리기 전에 로컬에서 테스트하는 방법을 작성해보도록 할게요.

 

1. 로컬에서 Lambda에 올릴 함수 테스트

 

package.json에 아래와 같이 scripts를 추가합니다.

{
    "name": "firebase-lambda",
    "version": "1.0.0",
    "main": "index.js",
    "scripts": {
        "locally" : "node -e \"console.log(require('./index').handler({}));\""
    },
    "dependencies": {
        "firebase-admin": "9.6.0"
    }
}

index.js의 handler 함수를 실행하고 결과를 출력해주는 함수입니다.

package.json에 위와 같이 입력한 뒤 로컬에서 아래와 같은 명령어를 실행하면 테스트가 가능합니다.

npm run locally

 

2. Firebase에 Collection 생성 및 데이터 추가 테스트

 

Firebase Cloud firestore에 "exchanges" 컬랙션을 생성하였습니다.

이제 exchanges에 data를 추가하는 코드를 작성해보도록 할게요.

 

const admin = require('firebase-admin')
const serviceAccount = require('./serviceAccountKey.json')

admin.initializeApp({
    credential: admin.credential.cert(serviceAccount)
});

const db = admin.firestore()
const COLLECTION_NAME = "exchanges"

exports.handler = (event, context, callback) => {
  
    const test_data = {
        currency : 'USD',
        price : 1000
    }

    db.collection(COLLECTION_NAME).add(test_data).then((ref) => {
        console.log(ref);
    }).catch((err) => {
        console.log(err);  
    })
    
    return test_data
}

index.js에 위와 같이 작성합니다.

컬랜션 이름은 생성하신 이름으로 대체하시면 됩니다.

 

이제 로컬에서 아래 명령어로 해당 함수를 호출합니다.

npm run locally

함수를 실행하고 firestore에 해당 데이터가 입력되었는지 확인합니다.

정상적으로 들어왔다면 firebase에 데이터를 저장할 수 있게 되었습니다.

 

이제 index.js를 실제 활용할 함수로 만들면 되겠죠?

 

3편에서는 환율 정보를 가져와서 데이터를 쌓는 방법을 작성해보도록 하겠습니다.

다음 포스팅에서 이어갈게요.

 

 

반응형
댓글