Firebase Hostingは、FirebaseコンソールとFirebase CLIの両方を介して、ホスティングサイトのチャネル、リリース、バージョンを管理するためのツールを提供します。
ホスティングインフラストラクチャの概要
ホスティングインフラストラクチャを理解すると、このページで説明されている管理オプションを理解するのに役立ちます。
すべてのFirebaseプロジェクトには、プロジェクトのすべてのリソース(データベース、認証、機能など)にアクセスできるデフォルトのホスティングサイトがあります。サイトには1つ以上のチャネルが含まれ、各チャネルは特定のコンテンツとホスティング構成を提供するURLに関連付けられています。
すべてのホスティングサイトには、(1)サイトのFirebaseでプロビジョニングされたサブドメイン( SITE_ID .web.app
とSITE_ID .firebaseapp.com
)および(2)接続されたカスタムドメインでコンテンツとホスティング構成を提供する「ライブ」チャネルがあります。オプションで、一時的な共有可能な「プレビューURL」( SITE_ID -- CHANNEL_ID - RANDOM_HASH .web.app
)で独自のコンテンツと構成を提供する「プレビュー」チャネルを作成することもできます。
各チャネルによって提供されるコンテンツと構成は、一意の識別子を持つバージョンオブジェクトにパッケージ化されます。サイトにデプロイすると、Firebaseは特定のバージョンを指すリリースオブジェクトを作成します。リリースには、誰がいつ展開したかなど、展開に関するメタデータが含まれています。
Firebaseプロジェクトのホスティングダッシュボードから、リリース履歴テーブルでライブチャンネルのリリースの完全な履歴を確認できます。複数のホスティングサイトがある場合は、目的のサイトの[表示]をクリックして、リリース履歴を確認します。プレビューチャネルがある場合は、ホスティングダッシュボードにも表示されます。
チャネルの設定を管理する
サイトのチャネルごとに、その設定を制御できます。チャネルの有効期限などの一部の設定は、プレビューチャネルにのみ適用できます。
保持するリリースの数を制限する
チャネルにデプロイする(およびリリースを作成する)たびに、ホスティングは以前のリリースに関連付けられたバージョンをプロジェクトのホスティングストレージに保持します。ライブチャンネルとプレビューチャンネルの両方で、プロジェクトの各チャンネルに保持するリリース数を設定できます。
ホスティングが以前のリリースを保持するのはなぜですか?
ライブチャンネルの場合、以前のリリースを保持すると、必要に応じて以前のバージョンのサイトにロールバックできます。プレビューチャンネルの場合、ロールバックはまだ利用できません。保持するリリースの数を制限するのはなぜですか?
以前のリリースのコンテンツはこのストレージに保持されるため、この機能は、プロジェクトのホスティングストレージの使用レベルを制御するのに役立ちます。コンソールの[ストレージ]タブからホスティングストレージを監視できます。保持するリリースを制限するとどうなりますか?
保持するリリースの制限を設定すると、設定した制限を超えるリリースのコンテンツは、最も古いリリースから順に削除されるようにスケジュールされます。
チャネルのリリースストレージ制限を設定する方法は次のとおりです。
Firebaseコンソールで、リリースストレージ設定ダイアログにアクセスします。
あなたのライブチャンネルのために
サイトの[リリース履歴]テーブルで、[ ]をクリックし、[ストレージ設定のリリース]を選択します。プレビューチャンネルの場合
プレビューチャネルの行で、 をクリックし、[チャネル設定]を選択します。
保持するリリースの数を入力し、[保存]をクリックします。
プレビューチャネルの有効期限を設定します
デフォルトでは、プレビューチャネルは作成日から7日で有効期限が切れますが、サイトのライブチャネルが期限切れになることはありません。
プレビューチャネルの有効期限が切れると、そのチャネルとそのリリースおよび関連するバージョンは、24時間以内に削除されるようにスケジュールされます。関連するプレビューURLも非アクティブ化されます。このバージョン削除の例外は、バージョンが別のリリースに関連付けられている場合です(これは、たとえば、同じサイト内のあるチャネルから別のチャネルにバージョンを複製した場合に発生します)。
ホスティングは、チャネルの有効期限を制御する2つの異なる方法をサポートしています。
Firebaseコンソール
プレビューチャネルの行で、 をクリックし、[チャネル設定]を選択します。有効期限の日時を入力します。FirebaseCLI
プレビューチャネルにデプロイするときは、次のように--expires DURATION
フラグを渡します。firebase hosting:channel:deploy new-awesome-feature --expires 7d
有効期限は、展開日から最大30日です。時間には
h
、日にはd
、週にはw
を使用します(たとえば、それぞれ12h
、7d
、2w
)。
あるチャネルから別のチャネルにバージョンを複製する
デプロイされたバージョンをあるチャネルから別のチャネルに複製できます。ライブチャンネルやプレビューチャンネル、ホスティングサイト、さらにはFirebaseプロジェクト間でクローンを作成できます。
cloneコマンドは、「ターゲット」チャネルにもデプロイされるため、複製されたホスティングコンテンツと構成は、「ターゲット」チャネルの関連付けられたURLで自動的に提供されます。
この機能は、バージョントラッキングに役立ちます。または、別のチャネルで表示および/またはテストした正確なコンテンツを展開していることを確認したい場合に役立ちます。ここではいくつかの例を示します。
「QA」プレビューチャネルからサイトのライブチャネルにクローンを作成します(ライブになります!)
サイトのライブチャネルから「デバッグ」プレビューチャネルにクローンを作成します(ロールバック前など)
「ステージング」Firebaseプロジェクトのチャンネルから「本番」Firebaseプロジェクトのプレビューチャンネルにクローンを作成します
バージョンのクローンを作成するには、任意のディレクトリから次のコマンドを実行します。
firebase hosting:clone SOURCE_SITE_ID:SOURCE_CHANNEL_ID TARGET_SITE_ID:TARGET_CHANNEL_ID
各プレースホルダーを次のように置き換えます。
SOURCE_SITE_IDおよびTARGET_SITE_ID :これらはチャネルを含むホスティングサイトのIDです。
- デフォルトのホスティングサイトには、FirebaseプロジェクトIDを使用します。
- 同じFirebaseプロジェクトまたは異なるFirebaseプロジェクトにあるホスティングサイトを指定できます。
SOURCE_CHANNEL_IDおよびTARGET_CHANNEL_ID :これらはチャネルの識別子です。
- ライブチャネルの場合、チャネルIDとして
live
を使用します。 - 指定された「ターゲット」チャネルがまだ存在しない場合、このコマンドは、チャネルにデプロイする前にチャネルを作成します。
- ライブチャネルの場合、チャネルIDとして
同じホスティングサイトのあるチャンネルから別のチャンネルにバージョンを複製すると、Firebaseはまったく同じバージョンを指す新しいリリースオブジェクトを作成します。ホスティングサイトに、両方が同じバージョン(バージョンIDで識別される)を指す2つのリリースが表示されます。
ただし、別のホスティングサイト(または別のFirebaseプロジェクト)のチャンネルにバージョンを複製すると、Firebaseは新しいリリースと新しいバージョン(別のバージョンIDで識別される)の両方を作成します。
以前のバージョンのサイトにロールバックします
ロールバックして、サイトのライブチャネルの以前のバージョンを提供できます。このアクションは、現在のリリースに問題があり、ロールバックして既知の動作バージョンのサイトを提供する場合に役立ちます。または、おそらくあなたのサイトは休日や特別なイベントのために一時的なコンテンツを提供しましたが、今あなたはあなたの「通常の」コンテンツを提供するためにロールバックしたいと思っています。
ロールバックすると、以前のリリースと同じバージョンのコンテンツを提供する新しいリリースが作成されます。リリース履歴テーブルでは、両方のリリースに同じバージョン識別子がリストされます。
ロールバックする方法は次のとおりです。
Firebaseコンソールのサイトの[リリース履歴]テーブルで、ロールバックする前のリリースエントリにカーソルを合わせます。
リリースを手動で削除する
プロジェクトのホスティングストレージを解放するには、ライブチャネルからリリースを手動で削除する必要がある場合があります。削除できるのは以前のリリースのみで、ライブサイトで現在提供されているリリースは削除できません。
リリースを削除すると、実際にはそのコンテンツが削除され、24時間以内に削除される予定です。リリースオブジェクト自体は保持されているため、メタデータ(誰がいつデプロイしたか)を引き続き確認できます。
リリースを削除する方法は次のとおりです。
Firebaseコンソールのサイトの[リリース履歴]テーブルで、削除する前のリリースエントリにカーソルを合わせます。
プレビューチャンネルを手動で削除する
プレビューチャネルを削除することはできますが、サイトのライブチャネルを削除することはできません。
プレビューチャンネルを削除すると、そのチャンネルとそのリリースおよび関連するバージョンが24時間以内に削除されるようにスケジュールされます。関連するプレビューURLも非アクティブ化されます。バージョン削除の例外は、バージョンが別のリリースに関連付けられている場合です(これは、たとえば、同じサイト内のあるチャネルから別のチャネルにバージョンを複製した場合に発生します)。
ホスティングは、プレビューチャネルを削除する2つの異なる方法をサポートしています。
Firebaseコンソール
プレビューチャネルの行で、 をクリックし、 [チャネルの削除]を選択します。削除を確認します。FirebaseCLI
任意のディレクトリから次のコマンドを実行します。firebase hosting:channel:delete CHANNEL_ID
プレビューチャネルとクローン作成のためのCLIコマンド
プレビューチャンネルのコマンド
複数のホスティングサイトがある場合、プレビューチャネルのすべてのコマンドはデプロイターゲットをサポートします。
指示 | 説明 |
---|---|
firebase hosting:channel:create CHANNEL_ID | 指定された このコマンドはチャネルに展開されません。 |
firebase hosting:channel:delete CHANNEL_ID | 指定したプレビューチャンネルを削除します サイトのライブチャンネルを削除することはできません。 |
firebase hosting:channel:deploy CHANNEL_ID | ホスティングコンテンツと設定を指定されたプレビューチャネルにデプロイします プレビューチャネルがまだ存在しない場合、このコマンドは、チャネルに展開する前に、デフォルトのホスティングサイトにチャネルを作成します。 |
firebase hosting:channel:list | デフォルトのホスティングサイトのすべてのチャネル(「ライブ」チャネルを含む)を一覧表示します |
firebase hosting:channel:open CHANNEL_ID | 指定されたチャネルのURLでブラウザを開くか、ブラウザで開くことができない場合はURLを返します |
バージョンの複製のためのコマンド
指示 | 説明 |
---|---|
firebase hosting:clone \ | 指定された「ソース」チャネルに最後にデプロイされたバージョンを、指定された「ターゲット」チャネルに複製します このコマンドは、指定された「ターゲット」チャネルにも展開されます。 「ターゲット」チャネルがまだ存在しない場合、このコマンドは、チャネルに展開する前に、「ターゲット」ホスティングサイトに新しいプレビューチャネルを作成します。 |
firebase hosting:clone \ | 指定されたバージョンを指定された「ターゲット」チャネルに複製します このコマンドは、指定された「ターゲット」チャネルにも展開されます。 「ターゲット」チャネルがまだ存在しない場合、このコマンドは、チャネルに展開する前に、「ターゲット」ホスティングサイトに新しいプレビューチャネルを作成します。 |