티스토리 뷰

반응형

Google Functions & Firestore 저장하기

 

1편 - Functions 프로젝트 생성 및 Deploy 하는 법.

 


1. Google functions를 사용하는 이유

 

 토이 프로젝트에서 크롤링 Firebase에 데이터를 쌓아야 하는 이유가 생겼습니다.

처음에는 AWS의 Lamdba를 고려하여 연결하려고 했지만 Firebase console에서 Google Function를 한 번에 확인할 수 있고 같은 데이터 센터라는 이점이 있기 때문에 Google Function를 사용하게 되었습니다.

 

이 포스팅에서는 Google Function를 활용하여 크롤링 데이터를 Firebase까지 데이터를 쌓는 방법을 정리하려고 합니다. 여러편을 통해 정리할 예정이고 1편에서는 Google Functions을 Deploy 하는 방법을 정리해볼게요.

 

2. Functions 프로젝트 만들기.

 

Firebase Project가 생성되었다는 가정하에 포스팅을 정리합니다.

 

#1 firebase tools 설치하기

 

firebase tools를 설치하면 firebase에 필요한 기본 프로젝트를 생성할 수 있습니다.

Goolge Functions 외에도 GCP에서 사용가능한 프로젝트 생성이 가능합니다.

 

아래 명령어를 통해 npm 전역으로 설치해주세요.

npm install -g firebase-tools

 

#2 firebase 인증하기.

 

firebase 프로젝트를 생성하기 위해서는 firebase 인증을 해야 합니다.

login 명령어를 통해 인증을 진행합니다.

 

아래 명령어를 실행하시면 브라우저를 통해 인증하는 화면으로 이동합니다.

firebase login

 

#3 프로젝트 생성하기

 

이제 인증을 완료하면 프로젝트를 생성할수 있습니다.

 

프로젝트를 생성할 폴더를 만든 뒤에 터미널로 접속하여 아래 명령어를 실행합니다.

firebase init

Space bar로 Functions를 선택하고 진행합니다. 프로젝트는 기존에 있다면 기존 프로젝트를 설정하셔야 합니다.

(주의 : 요금제는 Blaze로 설정되어야 해당 Functions를 사용이 가능)

 

3. Functions Deploy 하기.

 

이제 생성된 프로젝트를 테스트 하기 위해서 Firebase Functions에 Deploy 해보겠습니다.

프로젝트 만들때 생성되었던 index.js를 아래와 같이 수정합니다.

 

const functions = require("firebase-functions");

exports.helloWorld = functions.https.onRequest((request, response) => {
  functions.logger.info("Hello logs!", {structuredData: true});
  response.send("Hello from Firebase!");
});

 

파일을 수정 완료 하였다면 아래 명령어를 통해 서버에 반영합니다.

firebase deploy

명령어를 입력하면 서버로 Deploy가 시작되고 완료되면 아래와 같이 표시됩니다.

 

4. Google Function API 호출하기

 

Firebase Console에서 Functions 메뉴를 들어가면 Deploy 된 함수를 확인할 수 있습니다.

트리거에 표시되는 API를 브라우저에 입력하면 정상 호출되는지 확인 가능합니다.

 

Function의 경우 기본 us-central1으로 설정됩니다.

만약, Region을 이동하고 싶다면 아래와 같이 함수에 설정하여 다시 반영해야 합니다.

 

const functions = require("firebase-functions");

exports.helloWorld = functions.region("asia-northeast3").https.onRequest((request, response) => {
  functions.logger.info("Hello logs!", {structuredData: true});
  response.send("Hello from Firebase!");
});

"asia-northeast3"는 서울 리전입니다.

 

리전에 대한 리스트는 아래 링크로 참조하세요.

https://firebase.google.com/docs/functions/locations?hl=ko 

 

Cloud Functions 위치  |  Firebase

Cloud Functions는 리전을 기반으로 합니다. 즉 Cloud 함수를 실행하는 인프라가 특정 리전에 있으며 해당 리전 내의 모든 영역에서 중복으로 사용할 수 있도록 Google이 관리합니다. 함수를 실행할 지

firebase.google.com

 

다음 편에는 Google Function을 활용하여 Firestore에 데이터를 저장하는 방법을 정리하겠습니다.

반응형
댓글