![見出し画像](https://assets.st-note.com/production/uploads/images/145748237/rectangle_large_type_2_a10407bb41f7e3d0b18bf67288f2668f.jpeg?width=800)
honoが気になっていたので、Cloudflare Workerからはじめます
先週は、「フロントエンドの知識地図」の後半を読みました。今週は、最近気になっているhonoを、試してみようと思います。
honoを試したい
honoを使ってみたという話をちょいちょい目にしていて、「hono」ってどんなものなんだろう?手軽っていうけど、どれくらい手軽なんだろう?と気になっていました。
ところで、honoって何?
Webサービスを構築するためのフレームワークなのかな?と予想したものの、何もわからないので、そこから調べます。検索してみると、honoの開発者yusukebeさんのZennの記事「Hono[炎]っていうイケてる名前のフレームワークを作っている」がありました。そこに、開発の経緯が書かれていました。
だんだんとCloudflare Workersに特化した「Webアプリを作るためのフレームワーク」を作りたくなってきました。手段の目的化です。ということで作り始めました。「Hono[炎]」というイケてる名前のフレームワークです。
「hono=ほのお」なんですね。かっこいい。honoは、Cloudflare Workersに特化したフレームワークということもわかりました。ということは、Cloudflare Workersを使うということですね。Cloudflare Workersどころか、Cloudflareも使ったことがありません。どうやって使えばよいか、調べます。
まずCloudflare Workersが使えないといけない
Cloudflare Workersは、サーバーレスアプリケーションとJAMstack Webサイトのための開発プラットフォームで、気軽に安全なサーバレスWebアプリケーションが構築&公開できるようです。公式サイトを見てみると、無料プランがあることがわかりました。これは、気軽に試せますね。
![Cloudflare Workersの料金体系、無料、有料、増分費用の一覧](https://assets.st-note.com/img/1719730887928-JSs7ZVHr5T.png?width=800)
Eggheadコースを修了すれば、独自のCloudflare Workersプロジェクトを試してみることができるそうなので、コースを受講することにします。
![Workersの詳細コンテンツの紹介。Workersを使用した構築、開発者コミュニティ、本日構築を開始(Eggheadコース)がある。](https://assets.st-note.com/img/1719731850398-GOgBOH8OgZ.png?width=800)
「構築を開始する」をクリックすると、EggheadのCloudflare Workersの紹介ページに遷移するので、「Start Watching」をクリックして、1分41秒のサインアップ手順の紹介動画を視聴します。
![EggheadのCloudflare Workersの紹介ページ](https://assets.st-note.com/img/1719732255018-QjfKyTWXy9.png?width=800)
学習コンテンツは9種類、合計37分の動画で構成されています。
1 Create a Cloudflare Workers Account
2 Install and Configure the Cloudflare Workers CLI Wrangler
3 Generate New Cloudflare Workers Projects with Wrangler's generate Command
4 Write Your First Cloudflare Workers Serverless Function
5 Preview and Publish Your Cloudflare Workers Project
6 Render HTML Pages with Cloudflare Workers
7 Render Cloudflare Region Data for a Request Using request.cf
8 Use Location Personalization Features in Cloudflare Workers
9 Deploy to a Custom Domain with Cloudflare Wrangler Environments
解説動画に従ってユーザー登録後にWranglerをインストールしたのですが、バージョン確認をしたところ「今のバージョンは非推奨なので最新バージョンに更新してください」という警告が表示されました。
![Wranglerのバージョンを確認したところ、非推奨バージョンなので更新するようにというメッセージが表示された](https://assets.st-note.com/img/1719748141001-phEJUbvayg.png?width=800)
メッセージにしたがって、Wranglerのバージョンを最新にします。
npm uninstall -g @cloudflare/wrangler && npm install -g wrangler
を実行したところ、ファイルとディレクトリのアクセス権が無いとエラー修了したので、sudoで実行しなおしました。
sudo npm uninstall -g @cloudflare/wrangler && sudo npm install -g wrangler
今度はアンインストールと、インストールができました。
$ wrangler --version
⛅️ wrangler 3.62.0
-------------------
動画に従って、'my-worker'を作成しました。
$ wrangler generate my-worker
⛅️ wrangler 3.62.0
-------------------
Using npm as package manager.
:
:
$ cd my-worker/
$ ls
node_modules package-lock.json package.json src tsconfig.json wrangler.toml
TypeScriptのプロジェクトを選択したので、index.tsはこんなコードです。
/**
* Welcome to Cloudflare Workers! This is your first worker.
*
* - Run `wrangler dev src/index.ts` in your terminal to start a development server
* - Open a browser tab at http://localhost:8787/ to see your worker in action
* - Run `wrangler deploy src/index.ts --name my-worker` to deploy your worker
*
* Learn more at https://developers.cloudflare.com/workers/
*/
export interface Env {
// Example binding to KV. Learn more at https://developers.cloudflare.com/workers/runtime-apis/kv/
// MY_KV_NAMESPACE: KVNamespace;
//
// Example binding to Durable Object. Learn more at https://developers.cloudflare.com/workers/runtime-apis/durable-objects/
// MY_DURABLE_OBJECT: DurableObjectNamespace;
//
// Example binding to R2. Learn more at https://developers.cloudflare.com/workers/runtime-apis/r2/
// MY_BUCKET: R2Bucket;
//
// Example binding to a Service. Learn more at https://developers.cloudflare.com/workers/runtime-apis/service-bindings/
// MY_SERVICE: Fetcher;
}
export default {
async fetch(
request: Request,
env: Env,
ctx: ExecutionContext
): Promise<Response> {
return new Response("Hello World!");
},
};
初期プロジェクトを動画に従って実行しようとしたところ、wrangler previewではなく、wrangler devを実行するようにメッセージが表示されました。メッセージに従って、wrangler devを実行すると、成功したようです。
![wrangler previewではなく、wrangler devを実行するようにエラーメッセージが表示された。wrangler devを実行するとhttp://localhost:8787でページの確認ができるとメッセージが表示された](https://assets.st-note.com/img/1719750204473-rzGGKlMI9c.png?width=800)
動画に従って設定ファイル()にaccount_idを追加して、公開してみます。
$ wrangler publish
⛅️ wrangler 3.62.0
-------------------
▲ [WARNING] `wrangler publish` is deprecated and will be removed in the next major version.
Please use `wrangler deploy` instead, which accepts exactly the same arguments.
Total Upload: 0.19 KiB / gzip: 0.16 KiB
Uploaded my-worker (1.43 sec)
Published my-worker (3.83 sec)
https://my-worker.hikeybow-cf.workers.dev
公開できましたが、wrangler deployを使うようにメッセージが表示されました。動画は、いろいろ情報が古いかもしれません。
改めて、wrangler deployを実行して、ブラウザで確認しました。
![デプロイ結果の画面](https://assets.st-note.com/img/1719751524534-vlJnZ3K7VF.png?width=800)
まとめ
9ステップ、合計37分の入門動画なのですが、動画を見ながら実際に確かめるので、結構時間がかかります。5本目の動画まで進んだところですが、今日はここまでにします。(来週こそ、honoの確認をしたい)
この記事が気に入ったらサポートをしてみませんか?