프로젝트의 확장 프로그램 구성 재사용

Firebase 프로젝트에 확장 프로그램을 설치 및 구성하고 나면 이 구성을 저장해 다른 프로젝트에 배포할 수 있습니다. 저장된 구성에는 각 인스턴스의 버전과 설치 시 지정한 매개변수 값을 비롯하여 설치한 모든 확장 프로그램 인스턴스에 대한 정보가 있습니다.

다음은 몇 가지 사용 예입니다.

  • 프로젝트의 확장 프로그램 구성을 다른 프로젝트에서 다시 생성
  • 확장 프로그램 구성을 다른 사용자와 공유
  • 소스 제어에 확장 프로그램 구성 커밋
  • CI/CD 파이프라인에 확장 프로그램 추가

프로젝트의 확장 프로그램 구성 저장

프로젝트의 확장 프로그램 구성을 저장하려면 다음 단계를 따르세요.

  1. 아직 Firebase CLI를 설정하지 않았다면 설정합니다.
  2. 셸 프롬프트에서 프로젝트 디렉터리로 변경합니다. (프로젝트 디렉터리에는 firebase.json 파일이 포함되어 있습니다.)
  3. ext:export 명령어를 실행합니다.
    firebase ext:export –-project=YOUR_PROJECT_ID

ext:export 명령어는 firebase.json 파일에 extensions 섹션을 추가합니다. 예를 들면 다음과 같습니다.

{
 "extensions": {
   "my-bigquery-extension": "firebase/firestore-bigquery-export@^0.1.18",
   "my-image-resizer": "firebase/storage-resize-images@^0.1.22",
 }
}

또한 ext:export 명령어는 설치한 각 확장 프로그램 인스턴스에 .env 파일을 포함하는 extensions 디렉터리를 생성합니다. 이러한 파일에는 각 인스턴스의 구성 매개변수가 포함됩니다. 예를 들어 storage-resize-images의 인스턴스에는 다음과 같은 .env 파일이 있을 수 있습니다.

IMAGE_TYPE=jpeg
LOCATION=us-central1
IMG_BUCKET=${param:PROJECT_ID}.appspot.com
IMG_SIZES=100x100
DELETE_ORIGINAL_FILE=false

프로젝트에 확장 프로그램 구성 배포

프로젝트의 확장 프로그램 구성을 저장하고 나면 Firebase CLI를 사용하여 프로젝트에 배포할 수 있습니다. 확장 프로그램 구성을 배포할 때는 저장된 구성의 모든 확장 프로그램 인스턴스를 프로젝트에 일제히 설치, 업데이트, 구성합니다.

확장 프로그램 구성을 배포하려면 다음 안내를 따르세요.

  1. 셸 프롬프트에서 저장된 확장 프로그램 구성이 포함된 디렉터리로 변경합니다. 이 디렉터리는 firebase.json을 포함하고 있습니다. ext:export를 실행했다면 이미 올바른 디렉터리에 있는 것입니다.)
  2. deploy 명령어를 실행하여 확장 프로그램을 배포할 프로젝트를 지정합니다.
    firebase deploy --only extensions –-project=YOUR_PROJECT_ID

deploy 명령어는 각 인스턴스 구성의 유효성을 검사하고 firebase.json에 나열되지 않는 대상 프로젝트에서 확장 프로그램 인스턴스를 삭제할 것인지 확인한 다음 모든 확장 프로그램 인스턴스를 배포합니다.

프로젝트별 확장 프로그램 구성

저장된 확장 프로그램 구성을 사용하여 스테이징 프로젝트, 프로덕션 프로젝트 등 각기 다른 여러 프로젝트에 배포할 수 있습니다. 이 작업을 수행할 때 몇 가지 매개변수는 프로젝트별로 값을 다르게 설정해야 할 수 있습니다. 프로젝트별 .env 파일을 사용하면 이러한 설정이 가능합니다. 프로젝트별로 서로 다른 매개변수 값은 extensions/${extensionInstanceId}.env.${projectIdOrAlias}에 입력하고 공유 매개변수 값은 extensions/${extensionInstanceId}.env에 입력할 수 있습니다.