상세 컨텐츠

본문 제목

[GCP] Cloudfunction 초기 설정 및 프로젝트 이동

개발/ETC

by 대충고양이짤 2022. 2. 17. 18:42

본문

개발 환경

  • 프로젝트 A에 cloudfunction이 이미 구동 중
  • 새로운 프로젝트 B 생성 및 초기 설정 필요
  • 해당 cloudfunction을 프로젝트 B로 이동

새로운 프로젝트 설정

firebase-admin 서비스 계정의 key 파일 발급

  1. firebase -> project 설정 -> 서비스 계정 메뉴로 이동
  2. firebase admin sdk 사용을 위한 서비스 계정 확인
  3. 사용하는 언어에 따른 스니펫 확인 (node.js 사용)
  4. 새 비공개 키 생성을 클릭하여 키를 다운 받는다

IAM 권한 설정

새로운 프로젝트에서 서비스 계정에 cloudfunction 관련 권한을 부여해야 한다.

발급 받은 키 파일을 특정 위치로 이동 및 위치 저장

CLI를 통해 서비스 계정을 사용하려면 환경 변수를 설정해야 한다.
발급 받은 키파일을 특정 위치로 이동하고 경로를 기록한다.
아래 그림처럼 JSON 파일의 경로를 방금 기록한 경로로 변경한다.

//현재의 환경 변수값을 확인 
echo $GOOGLE_APPLICATION_CREDENTIALS
//환경 변수 저장 
export GOOGLE_APPLICATION_CREDENTIALS="/home/user/Downloads/service-account-file.json"

이후 코드에서는

스니펫을 참조에서 코드에 구현하면 된다

import * as admin from "firebase-admin";
admin.initializeApp({credential: admin.credential.applicationDefault()});

cloud function 이동

CLI에서 프로젝트를 변경한다

firebase use <new project name>

그리고 해당 function을 deploy 한다

firebase deploy --only functions:testfunc

만약에 custom token을 사용한다면

credential api 관련 설정을 안해주면 아래와 같은 에러가 발생할 수 있다.

Error: IAM Service Account Credentials API has not been used in project....

에러에 있는 링크를 따라 [IAM Service Account Credentials API]를 사용한다고 하면 된다.

참고 사이트

관련글 더보기

댓글 영역