🪣

ReactでビルドしたファイルをGoogle Cloud Storageで公開する

2023/12/25に公開

はじめに

先日Reactで作成したページをGoogle Cloud Storageに静的サイトとして公開する機会がありましたので、その設定手順をまとめてみました。

バケットの作成

GCPのコンソールからCloud Storageを表示し、バケットを作成します。

バケット作成の画面で、バケット名やデータ保存場所、ストレージクラスなどを指定します。

バケットは外部からアクセスできるようにしますので、公開アクセスの防止にある「このバケットに対する公開アクセス禁止を適用する」をOFFにします。

バケットの権限設定

作成したバケットを選択し、「権限」をクリックします。

「プリンシパルを追加」をクリックし、以下内容で保存します。

  • 新しいプリンシパル:allUsers
  • ロールを選択:Storage レガシー オブジェクト 読み取り

以下の確認メッセージが表示されるので、「一般公開アクセスを許可」をクリックします。

Reactのビルドファイル作成

今回はcreate-react-appで生成されたページを公開してみますので、ターミナルから以下コマンドでプロジェクトを作成します。

npx create-react-app {プロジェクト名} --template typescript

プロジェクトの作成が完了したら、package.jsonを開いてhomepageプロパティを追加します。

package.json
{
  "name": "gcs-website",
  "version": "0.1.0",
  "private": true,
+ "homepage": "./",
  "dependencies": {
    "@testing-library/jest-dom": "^5.17.0",
    "@testing-library/react": "^13.4.0",
    "@testing-library/user-event": "^13.5.0",

ターミナルから以下コマンドを実行してビルドします。
ビルドが完了すると、プロジェクト直下にbuildフォルダが生成されます。

npm run build

ビルドファイルのアップロード

buildフォルダ内のファイルをGCSで作成したバケットへアップロードします。

公開ページへアクセス

index.htmlの公開アクセスから「URLをコピー」をクリックします。

コピーしたURLへアクセスすると、お馴染みのreactのページが表示されます。

まとめ

今回初めてGCPを触ったのですが、なかなかUIに慣れず戸惑いましたが、なんとか公開までできました!
ただhomepageプロパティの存在を知らずに、ローカルでは表示されるのにGCSだとなぜ何も表示されないんだ。。と少し嵌りました😂

これからGCPを触る方の参考になれば幸いです✨

コラボスタイル Developers

Discussion