1. はじめに
概要
この Codelab では、8 つの JavaScript アプリケーションを Cloud Run にデプロイします。
- Angular SSR - Angular ベース
- Nuxt.js - Vue.js ベース
- Next.js - React ベース
- リミックス - React がベース
- SvelteKit - Svelte ベース
- SolidStart - Solid.js ベース
- 天体写真
- Qwik
学習内容
- Cloud Build が自動的にサポートする JavaScript フレームワークをデプロイする方法
- 構成が必要な JavaScript フレームワークをデプロイする方法
前提条件
- Cloud Shell ターミナルにログインしています。
- 課金が有効になっており、Cloud Run にデプロイする権限が設定された Google Cloud プロジェクトがあります
- 以前に Cloud Run サービスをデプロイしたことがある場合は、これを確認できます。たとえば、「ソースコードから Node.js ウェブサービスをデプロイする」クイックスタートの手順に沿って開始できます。
2. Cloud Shell をアクティブにする
- Cloud Shell ターミナルに移動します(https://shell.cloud.google.com/?show=terminal)。Cloud Shell を初めて起動する場合は、Cloud Shell について説明する中間画面が表示されます。中間画面が表示されたら、[続行] をクリックします。ほんの数分で Cloud Shell のプロビジョニングと接続が完了します。
- Cloud Shell で次のコマンドを実行して、
gcloud
プロジェクトを設定します。 <PROJECT_ID> は実際のプロジェクト ID に置き換えます。例:gcloud config set project <PROJECT_ID>
承認するよう求められたら、[Authorize] をクリックします。gcloud config set project js-frameworks
3. API を有効にする
この Codelab を使用する前に、いくつかの API を有効にする必要があります。この Codelab では、次の API を使用する必要があります。これらの API を有効にするには、次のコマンドを実行します。
gcloud services enable \ cloudbuild.googleapis.com \ artifactregistry.googleapis.com \ run.googleapis.com
その後、この Codelab 全体で使用する環境変数を設定します。
4. デフォルト リージョンの構成
リージョンはデプロイごとに個別に設定できます。このコマンドではデフォルトのリージョンが us-central1
に設定されるため、リージョンごとに設定する必要はありません。
gcloud config set run/region us-central1
5. Git を構成する
一部のライブラリでは、デフォルトでバージョン管理に git
が使用されることが想定されています。マシンに git
がすでに構成されている場合(たとえば、このラボをローカルで実行している場合)、この手順を実行する必要はありません。
git config --global user.email "you@example.com" git config --global user.name "Your Name" git config --global init.defaultBranch main
6. Angular SSR(Angular)
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- サーバーサイド レンダリング(SSR)を使用する Angular アプリケーションを作成する
設定の入力を求められたら、npx @angular/cli new angular-app --ssr
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd angular-app
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://angular-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(任意)
- Angular プロジェクトをローカルで削除する
cd .. rm -rf angular-app
- Angular Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete angular-app
Enter
キーを押して続行します。
7. Nuxt.js(Vue.js)
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- Nuxt.js アプリケーションを作成する
設定の入力を求められたら、npx nuxi init nuxt-app
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd nuxt-app
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://nuxt-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(省略可)
- ローカルで Nuxt.js プロジェクトを削除する
cd .. rm -rf nuxt-app
- Nuxt.js Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete nuxt-app
Enter
キーを押して続行します。
8. Next.js(React)
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- Next.js アプリケーションを作成する
設定の入力を求められたら、npx create-next-app next-app
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd next-app
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://next-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(任意)
- ローカルで Next.js プロジェクトを削除する
cd .. rm -rf next-app
- Next.js Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete next-app
Enter
キーを押して続行します。
9. リミックス(リアクション)
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- リミックス アプリケーションを作成する
設定の入力を求められたら、npx create-remix remix-app
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd remix-app
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://remix-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(省略可)
- リミックス プロジェクトをローカルで削除する
cd .. rm -rf remix-app
- Remix Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete remix-app
Enter
キーを押して続行します。
10. Cloud Shell のクリーンアップ
Cloud Shell を使用していない場合、または 1 つのアプリケーションのみをデプロイする場合、この手順は省略可能です。
Cloud Shell は 5 GB の永続的なホーム ディレクトリを備えており、Google Cloud で動作します。
Cloud Shell で 8 つのフレームワークをすべてデプロイするには、残りのアプリケーション用のスペースを作成する必要があります。
Cloud Shell でプロジェクトを削除しても、デプロイ済みの Cloud Run サービスは削除されません。
作成済みのアプリケーションを消去するには、次のコマンドを実行します。
cd ~ rm -rf angular-app/ rm -rf nuxt-app/ rm -rf next-app/ rm -rf remix-app/
11. SvelteKit(Svelte)
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- SvelteKit アプリケーションを作成する
設定の入力を求められたら、npx create-svelte svelte-app
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd svelte-app
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://svelte-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(省略可)
- SvelteKit プロジェクトをローカルで削除する
cd .. rm -rf svelte-app
- SvelteKit Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete svelte-app
Enter
キーを押して続行します。
12. SolidStart(ソリッド)
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- SolidStart アプリケーションを作成する
設定の入力を求められたら、npx create-solid solid-app
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd solid-app
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://solid-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(省略可)
- SolidStart プロジェクトをローカルで削除する
cd .. rm -rf solid-app
- SolidStart Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete solid-app
Enter
キーを押して続行します。
13. Astro
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- Astro アプリケーションを作成する
設定の入力を求められたら、npx create-astro astro-app
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd astro-app
- Node.js 用 Astro アダプターを追加する
npx astro add node
package.json
のstart
スクリプトを更新します。npm pkg set scripts.start="HOST=0.0.0.0 node ./dist/server/entry.mjs"
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://astro-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(省略可)
- ローカルで Astro プロジェクトを削除する
cd .. rm -rf astro-app
- Astro Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete astro-app
Enter
キーを押して続行します。
14. Qwik
- Angular アプリケーションを作成するディレクトリに移動します。
cd ~
- Qwik アプリケーションを作成する
設定の入力を求められたら、npx create-qwik
Enter
キーを押してデフォルト値を受け入れます。 - 作成した新しいプロジェクト フォルダに移動します。
cd qwik-app
- Cloud Run 用の Qwik アダプタを追加する
npm run qwik add cloud-run
- アプリケーションをデプロイする
設定の入力を求められたら、gcloud run deploy --allow-unauthenticated
Enter
キーを押してデフォルト値を受け入れます。
アプリケーションの確認
デプロイには数分かかります。完了すると、Cloud Run から次のような URL が返されます。
https://qwik-app-xxxxxxxxxx-uc.a.run.app
提供された URL を新しいブラウザタブで開いて、デプロイしたアプリケーションを表示します。
クリーンアップ(省略可)
- ローカルで Qwik プロジェクトを削除する
cd .. rm -rf qwik-app
- Qwik Cloud Run サービスを削除する
続行を確認するメッセージが表示されたら、gcloud run services delete qwik-app
Enter
キーを押して続行します。
15. 完了
これでこの Codelab は完了です。
クイックスタート: Git リポジトリから Cloud Run にデプロイするのドキュメントを確認して、バージョン管理に push するたびに今後のビルドを自動的にデプロイできるようにすることをおすすめします。
振り返り
- Cloud Build が自動的にサポートする JavaScript フレームワークをデプロイする方法
- Angular SSR - Angular ベース
- Nuxt.js - Vue.js ベース
- Next.js - React ベース
- リミックス - React がベース
- SvelteKit - Svelte ベース
- SolidStart - Solid.js ベース
- 構成が必要な JavaScript フレームワークをデプロイする方法
- 天体写真
- Qwik
16. クリーンアップ
不注意による料金の発生(たとえば、この Cloud Run サービスが誤って無料枠の毎月の Cloud Run 呼び出し割り当てよりも多く呼び出された場合)を回避するには、Cloud Run ジョブを削除するか、手順 1 で作成したプロジェクトを削除します。
Cloud Run サービスを削除するには、Cloud Run Cloud コンソール(https://console.cloud.google.com/run/)に移動して Cloud Run サービスを削除します。
プロジェクト全体を削除する場合は、https://console.cloud.google.com/cloud-resource-manager に移動し、手順 2 で作成したプロジェクトを選択して [削除] を選択します。プロジェクトを削除する場合は、Cloud SDK でプロジェクトを変更する必要があります。使用可能なすべてのプロジェクトのリストを表示するには、gcloud projects list
を実行します。