사이트의 실시간 및 미리보기 채널, 출시, 버전 관리

Firebase HostingFirebase 콘솔 및 Firebase CLI로 채널, 출시, 버전 관리 Hosting 사이트.

Hosting 인프라 개요

Hosting 인프라를 이해하면 관리 옵션에 대해 설명합니다.

모든 Firebase 프로젝트에는 모든 항목에 액세스할 수 있는 기본 Hosting 사이트가 있습니다. 프로젝트의 리소스 (데이터베이스, 인증, 함수 등) 사이트 하나 이상의 channel을 포함하며 각 채널은 URL과 연결됩니다. (특정 콘텐츠와 Hosting 구성을 제공하는)

<span class=Firebase 호스팅 계층 구조' /

모든 Hosting 사이트에는 콘텐츠를 제공하는 채널과 (1) Firebase에서 프로비저닝된 사이트의 하위 도메인에서 Hosting 구성 (SITE_ID.web.appSITE_ID.firebaseapp.com) 및 (2) 연결된 모든 항목 커스텀 도메인을 사용합니다. 원하는 경우 '미리보기' 일시적으로 자체 콘텐츠와 구성을 제공하는 채널은 공유 가능한 '미리보기 URL' (SITE_ID--CHANNEL_ID-RANDOM_HASH.web.app)

각 채널에서 제공하는 콘텐츠 및 구성은 고유 식별자가 있는 버전 객체로 패키징됩니다. 사이트에 배포할 때 Firebase는 특정 버전을 가리키는 출시 객체를 만듭니다. 출시에는 배포한 사람, 배포된 시간과 같이 배포에 대한 메타데이터가 포함됩니다.

Firebase 프로젝트의 Hosting 대시보드, 실시간 채널 발표 내역의 전체 기록을 출시 내역 표. 만약 여러 Hosting 사이트의 경우 보기를 클릭합니다. 해당 사이트의 출시 내역을 볼 수 있습니다. 미리보기 채널이 있는 경우 Hosting 대시보드에도 표시됩니다.

채널 설정 관리

사이트의 각 채널에 대한 설정을 관리할 수 있습니다. 채널 만료와 같은 일부 설정은 미리보기 채널에만 해당됩니다.

보관할 출시 개수 제한

채널에 배포하고 출시 버전을 만들 때마다 Hosting는 프로젝트의 Hosting에 있는 이전 출시와 연결된 버전 사용할 수 있습니다 각 채널에서 유지할 출시 개수를 설정할 수 있습니다. 실시간 및 미리보기 채널 모두

  • Hosting에서 이전 출시를 보관하는 이유는 무엇인가요?
    라이브 채널의 경우 이전 발표곡을 유지하면 다음과 같은 이점이 있습니다. 필요한 경우 사이트의 이전 버전으로 롤백합니다. 미리보기 채널의 경우에는 롤백이 아직 제공되지 않습니다.

  • 보관할 출시 수는 왜 제한되나요?
    이 기능을 사용하면 프로젝트의 Hosting 스토리지를 이전 출시의 콘텐츠는 이 저장소에 보관됩니다 GCP 콘솔에서 Hosting 스토리지를 스토리지 확인할 수 있습니다

  • 보관할 출시를 제한하면 어떻게 되나요?
    보관할 출시에 한도를 설정하면 설정한 한도를 넘는 모든 출시의 콘텐츠가 가장 오래된 것부터 시작해서 삭제가 예약됩니다.

채널에 출시 스토리지 한도를 설정하는 방법은 다음과 같습니다.

  1. Firebase 콘솔, 출시 스토리지 설정 대화상자에 액세스합니다.

    • 실시간 채널의 경우
      사이트의 출시 내역 테이블에서 를 클릭한 후 출시 스토리지 설정을 선택합니다.

    • 미리보기 채널의 경우
      미리보기 채널의 해당 행에서 를 클릭한 후 채널 설정을 선택합니다.

  2. 보관할 출시 개수를 입력한 다음 저장을 클릭합니다.

미리보기 채널 만료 설정

기본적으로 미리보기 채널은 만든 날짜로부터 7일 후 만료됩니다. 하지만 사이트의 실시간 채널은 만료되지 않습니다.

미리보기 채널이 만료되면 해당 출시 및 연결된 버전 모두가 24시간 내에 삭제되도록 예약됩니다. 연결된 미리보기 URL도 비활성화됩니다. 예외적으로, 다른 출시와 연결된 버전은 삭제되지 않습니다. 예를 들어 동일한 사이트 내에서 한 채널에서 다른 채널로 클론한 버전은 삭제되지 않습니다.

Hosting는 채널 만료를 제어하는 두 가지 방법을 지원합니다.

  • Firebase 콘솔
    미리보기 채널 행에서 다음 선택 채널 설정 만료 날짜와 시간을 입력합니다.

  • Firebase CLI
    미리보기 채널에 배포할 때 --expires DURATION 플래그의 예입니다.

    firebase hosting:channel:deploy new-awesome-feature --expires 7d

    만료 날짜는 배포 날짜로부터 최대 30일까지 가능합니다. h는 시간, d는 일, w는 주를 나타냅니다(예: 12h, 7d, 2w).

한 채널에서 다른 채널로 버전 클론

배포된 버전을 한 채널에서 다른 버전으로 클론할 수 있습니다. 나 실시간 또는 미리보기 채널, 사이트 Hosting개에서 클론 가능 관리할 수 있습니다

클론 명령어는 또한 '대상'에 배포합니다. 복제된 포드가 Hosting 콘텐츠 및 구성이 '타겟'에서 자동으로 게재됩니다. 채널의 관련 URL입니다.

이 기능은 버전 추적에 유용하며, 다른 채널에서 확인했거나 테스트한 정확한 콘텐츠를 확실하게 배포하려는 경우에도 유용합니다. 예를 들면 다음과 같습니다.

  • 'QA' 미리보기 채널에서 사이트의 실시간 채널로 클론(실시간으로 전환)

  • 사이트의 실시간 채널에서 '디버그' 미리보기 채널로 클론(롤백 전과 유사)

  • '스테이징' Firebase 프로젝트의 채널에서 '프로덕션' Firebase 프로젝트의 미리보기 채널로 클론

버전을 클론하려면 어느 디렉터리에서든 다음 명령어를 실행합니다.

firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID

각 자리표시자를 다음 항목으로 바꿉니다.

  • SOURCE_SITE_IDTARGET_SITE_ID: 채널이 포함된 사이트 Hosting

    • 기본 Hosting 사이트에는 Firebase 프로젝트 ID를 사용합니다.
    • 동일한 Firebase 프로젝트에 있는 사이트 Hosting개를 지정하거나 여러 Firebase 프로젝트에서도 사용할 수 있습니다
  • SOURCE_CHANNEL_IDTARGET_CHANNEL_ID: 채널의 식별자입니다.

    • 실시간 채널의 경우 live를 채널 ID로 사용합니다.
    • 지정된 '대상' 채널이 아직 존재하지 않으면 이 명령어가 배포를 수행하기 전 채널을 먼저 만듭니다.

사이트의 이전 버전으로 롤백

사이트의 실시간 채널을 이전 버전으로 제공하기 위해 롤백할 수 있습니다. 이 작업은 현재 출시에 문제가 있어 사이트의 알려진 작동 버전으로 롤백하려는 경우에 유용합니다. 또는 사이트에 연말연시나 특별 이벤트용으로 임시 콘텐츠를 게재한 경우 다시 '일반' 콘텐츠를 제공하기 위해 롤백할 수도 있습니다.

롤백하면 이전 출시와 동일한 버전의 콘텐츠를 제공하는 새 출시가 만들어집니다. 출시 내역 표에는 두 출시 모두 동일한 버전의 식별자로 표시됩니다.

롤백하는 방법은 다음과 같습니다.

  1. Firebase 콘솔, 사이트의 출시 내역 표에서 이전 버전 롤백할 항목을 선택합니다

  2. 아이콘을 클릭한 다음 롤백을 선택합니다.

수동으로 출시 삭제

여유 공간을 확보하려면 실시간 채널에서 발표곡을 직접 삭제해야 할 수 있습니다. 프로젝트의 Hosting 스토리지 이전 출시만 삭제할 수 있고 실시간 사이트에서 현재 제공 중인 출시는 삭제할 수 없습니다.

출시를 삭제하면 실제로 해당 콘텐츠가 삭제되며, 24시간 내에 삭제하도록 예약됩니다. 출시 객체 자체는 보관되므로 해당 메타데이터(배포한 사람, 배포 시간)를 계속 볼 수 있습니다.

출시를 삭제하는 방법은 다음과 같습니다.

  1. Firebase 콘솔, 사이트의 출시 내역 표에서 이전 버전 출시 항목을 선택합니다.

  2. 를 클릭한 다음 삭제를 선택합니다.

수동으로 파일 삭제

Firebase Hosting에서 선택한 파일을 삭제하는 기본적인 방법 방법은 파일을 로컬에서 삭제한 다음 다시 배포하는 것입니다.

수동으로 미리보기 채널 삭제

미리 보려는 채널을 클릭하여 채널을 미리 볼 수 있습니다. 이 뷰에서 특정 채널에 연결된 최신 배포 및 출시 버전 보기, 삭제, 되돌리기를 수행할 수 있습니다. 미리보기 채널을 삭제할 수 있지만 사이트의 실시간 채널은 삭제할 수 없습니다.

미리보기 채널을 삭제할 때는 해당 출시 및 연결된 버전과 함께 24시간 내에 채널이 삭제되도록 예약됩니다. 연결된 미리보기 URL도 비활성화됩니다. 예외적으로, 다른 출시와 연결된 버전은 삭제되지 않습니다. 예를 들어 동일한 사이트 내에서 한 채널에서 다른 채널로 클론한 버전은 삭제되지 않습니다.

Hosting는 미리보기 채널을 삭제하는 두 가지 방법을 지원합니다.

  • Firebase 콘솔
    미리보기 채널 행에서 다음 선택 채널 삭제: 삭제를 확인합니다.

  • Firebase CLI
    디렉터리에서 다음 명령어를 실행합니다.

    firebase hosting:channel:delete CHANNEL_ID

미리보기 채널 및 클론을 위한 CLI 명령어

미리보기 채널 명령어

미리보기 채널의 모든 명령어는 여러 Hosting 사이트가 있어야 합니다.

명령어 설명
firebase hosting:channel:create CHANNEL_ID

에 새 미리보기 채널을 만듭니다. 지정된 기본 Hosting 사이트를 CHANNEL_ID

이 명령어는 채널에 배포를 수행하지 않습니다.

firebase hosting:channel:delete CHANNEL_ID

지정된 미리보기 채널을 삭제합니다.

사이트의 실시간 채널은 삭제할 수 없습니다.

firebase hosting:channel:deploy CHANNEL_ID

Hosting 콘텐츠 및 구성을 지정된 미리보기 채널

미리보기 채널이 아직 없는 경우 이 명령어는 기본 Hosting 사이트의 채널 체크합니다

firebase hosting:channel:list 채널의 모든 채널('라이브' 채널 포함)을 기본 Hosting 사이트
firebase hosting:channel:open CHANNEL_ID 지정된 채널의 URL로 브라우저를 열거나 브라우저로 열기를 사용할 수 없으면 URL을 반환합니다.

버전 클론을 위한 명령어

명령어 설명
firebase hosting:clone \
SOURCE_SITE_ID:SOURCE_CHANNEL_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

지정된 '소스' 채널에서 최근에 배포된 버전을 지정된 '대상' 채널로 클론합니다.

이 명령어는 또한 지정된 '대상' 채널로의 배포도 수행합니다. 만약 'target' 이 명령어는 채널이 아직 존재하지 않는 경우 새 미리보기 채널을 'target' 배포 전 사이트 Hosting개 확인할 수 있습니다.

firebase hosting:clone \
SOURCE_SITE_ID:@VERSION_ID \
TARGET_SITE_ID:TARGET_CHANNEL_ID

지정된 버전을 지정된 '대상' 채널로 클론합니다.

이 명령어는 또한 지정된 '대상' 채널로의 배포도 수행합니다. 만약 'target' 이 명령어는 채널이 아직 존재하지 않는 경우 새 미리보기 채널을 'target' 배포 전 사이트 Hosting개 확인할 수 있습니다.

VERSION_ID는 다음 위치에서 확인할 수 있습니다. Hosting 대시보드 Firebase 콘솔로 이동합니다.