Firebase Cloud Functions 시작하기

sue·2022년 8월 15일
1
post-thumbnail

🧐 Cloud Functions 에 대해 알아보자


1. Cloud Functions 란?

firebase 공식 문서에서는 Cloud Functions 를 다음과 같이 설명하고 있다

Firebase용 Cloud Functions는 Firebase 기능과 HTTPS 요청에 의해 트리거되는 이벤트에 응답하여 백엔드 코드를 자동으로 실행할 수 있는 서버리스 프레임워크입니다


2. Cloud Functions 특징

Cloud Functions 의 특징은 다음과 같다

  1. 서버 관리가 불필요하다

    Cloud Function 은 서버리스 프레임워크로, 서버리스란 개발자가 서버를 관리할 필요 없이 애플리케이션을 빌드하고 실행 할 수 있도록 하는 개발 모델이다

  2. 사용한 만큼만 지불한다

    서버리스 환경에서 배포된 코드는 클라우드 서비스 환경에서 실행되고 컴퓨팅 자원을 사용한 만큼 비용이 부과된다

  3. 이벤트에 대한 응답으로 코드를 실행한다

    Cloud Functions를 사용하면 firebase 기능에서 코드를 트리거하거나 원하는 웹, 모바일 또는 백엔드 애플리케이션에서 HTTP를 통해 바로 코드를 호출할 수 있다


🧐 Cloud Functions 을 시작하자

선행되어야 하는 작업

1. node 설치
2. firebase 프로젝트 생성 및 Blaze 요금제로 변경
3. firebase 콘솔에서 firestore 사용 설정

공식 문서에서 안내하는 구현 경로대로 진행해보자

1. Cloud functions 설정

firebase 프로젝트를 연결하기 위한 프로젝트 디렉토리를 생성해준다
다음과 같은 과정을 통해서 프로젝트를 연결할 수 있다

1) firebase 명령줄 도구 설치

$ npm install -g firebase-tools

2) firebase 프로젝트 생성

$ firebase init
사용하고자 하는 기능을 선택한다 (space) firebase 콘솔에서 생성해둔 프로젝트에 연결한다 firestore 규칙 파일 설정, ESLint 사용 여부 등 선택한다

2. 함수 작성

Cloud Functions 은 onCall, onRequest 두 가지 방식으로 호출 할 수 있다
onCall 은 Firebase 앱에서 함수를 직접 호출하는 방식이고 onRequest 는 HTTP Request 방식으로 함수를 호출한다

우선은 onRequest 로 간단한 함수를 작성하여 테스트 해보자
호출하면 Hello World! 라고 응답하는 함수를 asia-northeast3 리전에 배포한다

// index.js

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

exports.test= functions
    .region("asia-northeast3")
    .https.onRequest((request, response) => {
      response.send("Hello World!");
    });

3. 함수 테스트

Cloud Functions 함수 배포 전 테스트를 위해 firebase emulator 기능을 사용할 수 있다

$ firebase emulators:start --only functions
Cloud Functions 이 localhost 5001 번 포트로, Emulator UI 가 4000 포트로 실행된다

http://localhost:5001/[프로젝트ID]/asia-northeast3/test

함수를 다음과 같은 URI로 테스트 할 수 있다


4. 배포 및 모니터링

Cloud Functions 를 다음과 같은 명령어를 통해 배포한다
** 프로젝트 초기화 할 때 ESLint 사용 설정을 해두면 Lint 오류를 고쳐야 배포가 된다

$ firebase deploy —only functions

firebase 콘솔 -> Functions -> 대시보드 에 배포가 완료된 Cloud Functions 이 보이고, 요청 URI 로 postman 에서 호출해보면 정상적으로 배포되었음을 확인 할 수 있다

firebase 콘솔 -> Functions -> 로그 탭에서 모니터링 가능하다


레퍼런스

https://firebase.google.com/docs/functions
https://www.redhat.com/ko/topics/cloud-native-apps/what-is-serverless

profile
백지를 채워나가는 중입니다 🙂

0개의 댓글

관련 채용 정보