コンテンツに移動
アプリケーション開発

Google Cloud で Svelte を使ってみる

2024年2月13日
Google Cloud Japan Team

※この投稿は米国時間 2024 年 1 月 30 日に、Google Cloud blog に投稿されたものの抄訳です。

Svelte をもうお試しになりましたか。Svelte は、他とは一線を画すウェブ フレームワークで、多くの煩雑な作業が実行時のブラウザでの処理からビルド フェーズに移されます。Svelte の前処理アプローチにより、JavaScript コードがより小さく、より高速で、よりシンプルになります。Svelte 上では、ルーティング、サーバーサイドのレンダリング、Node.js サポートなどに SvelteKit メタ フレームワークを使用できます。

Google Cloud のデベロッパー ツールとサーバーレス ランタイムは、SvelteKit ワークフローにシームレスに組み込まれます。では、アプリを起動して実行するには何をすればよいかを見てみましょう。ここでは RealWorld サンプルアプリのシナリオを使用します。これはデモアプリのフルスタック仕様で、さまざまなフロントエンドおよびバックエンド フレームワークの 100 を超える実装が含まれています。

Cloud Shell での Svelte コードの使用

最初に、Google Cloud Shell を起動します。ide.cloud.google.com に移動するだけでよく、Google Cloud アカウントは必要ありません。Google アカウントさえあれば誰でもアクセスできます。Cloud Shell は、コードエディタ、ターミナル、拡張機能などを備えた機能豊富な IDE です。

https://storage.googleapis.com/gweb-cloudblog-publish/images/1_-_editor.max-1700x1700.png

次に [Clone Git Repository...] を選択して URL https://github.com/sveltejs/realworld を指定し、[Clone from URL] を選択します。

これでリポジトリのクローンが作成されました。エクスプローラ ビューにサンプル アプリケーション コードが表示されるはずです。詳しく見ていく前に、構文のハイライト表示やその他の便利な機能を提供する Svelte 拡張機能をインストールしておきましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/images/2_-_extension.max-1700x1700.png

スクリプト、スタイル、マークアップは、構成要素またはコンポーネントにパッケージ化できます。少し見てみましょう。src/lib/ArticleList/index.svelte では、ArticleList コンポーネントが、ArticlePreview コンポーネントを埋め込んで、各記事の HTML マークアップを表示する様子を確認できます。

 

https://storage.googleapis.com/gweb-cloudblog-publish/images/image7_jOyePW4.max-900x900.png

アプリのプレビュー

コードを確認したので、次にアプリケーションをプレビューしましょう。IDE の右上にあるプロンプト アイコンを使用して、ターミナル ウィンドウを開きます。必要に応じて、ディレクトリをリポジトリのクローンを作成した realworld ディレクトリに変更します。次に、npm install を実行して必要なパッケージをインストールしてから、プレビュー モードで npm run dev を実行します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/3_-_terminal.max-800x800.png

リンクを直接「コマンドクリック」して、プロキシ サービスを使用してアクセスすることもできます。では、見てみましょう。

https://storage.googleapis.com/gweb-cloudblog-publish/images/4_-_conduit.max-1900x1900.png

簡単であることをおわかりいただけたことと思います。次に、Cloud Run でアプリを本番環境にデプロイする準備をしましょう。

デプロイの準備

スムーズなエクスペリエンスになるように、初期設定の状態のデモ アプリケーションにいくつかの小さな変更を加える必要があります。

まず、使用される SvelteKit アダプター Vercel から Node.js に更新しましょう。ターミナルから、以下を実行します。

  • npm uninstall @sveltejs/adapter-vercel

  • npm install -D @sveltejs/adapter-node

次に、新しいアダプターを使用するために svelte-config.js を更新します。

読み込んでいます...

最後に Dockerfile を作成して、アプリをビルドして実行しましょう。コンテナに必要なファイルのみを含めるために、.dockerignore ファイルを含めます。

Dockerfile

読み込んでいます...

.dockerignore

読み込んでいます...

アプリのデプロイ

自動スケーリング、高可用性、アイドルコストなし、CI / CD 統合など、Cloud Run には必要なものがすべて揃っています。あとはソースコードをコンテナ イメージにパッケージ化し、そのイメージをデプロイするだけです。

CLI をご利用のユーザーなら、gcloud run deploy を使用すれば、次のステップはとても簡単です。ただし、ここではプロセスを順を追って説明しながら素晴らしい UI ツールをご紹介したいと思います。Cloud Code 拡張機能(スクリーンショットの左下)を使用すると、一般的なデプロイ手順を UI で直接実行できます。Cloud Run に移動し、プロジェクト上のデプロイ アイコンを選択します。

https://storage.googleapis.com/gweb-cloudblog-publish/images/5_-_deploy.max-600x600.png

デフォルト設定のままで問題ありません。サービスの名前を選択し、作成した Dockerfile を使用してデプロイしていることを確認するだけです。

https://storage.googleapis.com/gweb-cloudblog-publish/images/6_-_settings.max-1300x1300.png

数分後には、パッケージ化の手順がすべて完了するはずです。これで Cloud Run 上でアプリが稼働されました。コンソールで詳細を確認できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/7_-_console.max-2200x2200.png

まとめ

このブログ投稿では、Google Cloud 上での Svelte アプリの開発と本番環境へのデプロイをいかに簡単に始めることができるかをご紹介しました。Svelte についてさらに学習するには、オンライン チュートリアルを利用するか、Svelte と Vertex AI を使用したハンズオンラボをお試しください。次のアプリ開発がうまくいくことを願っています。

ー Cloud プロダクト DevRel 担当責任者 Karl Weinmeister

投稿先