Fastly Compute
Fastly Compute は好きな言語で書かれたコードをグローバルネットワーク上で実行できる高度なエッジコンピューティングシステムです。 Hono はもちろん Fastly Compute 上でも動作します。
Fastly CLI を使用すると、少しのコマンドでアプリケーションをローカルで開発して、公開できます。
1. Setup
スターターは Fastly Compute でも使用できます。 "create-hono" コマンドでプロジェクトを開始しましょう。 fastly テンプレートを選択します。
npm create hono@latest my-appyarn create hono my-apppnpm create hono my-appbun create hono@latest my-appdeno init --npm hono my-appmy-app に移動して依存関係をインストールします。
cd my-app
npm icd my-app
yarncd my-app
pnpm icd my-app
bun i2. Hello World
src/index.ts を変更します:
// src/index.ts
import { Hono } from 'hono'
import { fire } from '@fastly/hono-fastly-compute'
const app = new Hono()
app.get('/', (c) => c.text('Hello Fastly!'))
fire(app)NOTE
アプリケーションのトップレベルで、 @fastly/hono-fastly-compute' から fire (または buildFire()) を使用する際に、 'hono/quick' よりはむしろ 'hono' から Hono を使用する方が適切です。 fire を使用すると、アプリケーションの初期化段階でルータが内部データを構築してしまうためです。
3. Run
ローカルで開発サーバーを起動し、ブラウザで http://localhost:7676 にアクセスしてください。
npm run startyarn startpnpm run startbun run start4. デプロイ
ビルドして、あなたの Fastly アカウントにデプロイするには以下のコマンドを実行します。 あなたがアプリケーションを始めてデプロイする場合、アカウントに新しいサービスを作成するように求められます。
まだアカウントを持っていない場合は、作成する必要があります。
npm run deployyarn deploypnpm run deploybun run deployバインディング
Fastly Compute では、高速なプラットフォームリソースをバインドすることができます。 たとえば、KV ストア、 Config ストア、 Secret ストア、バックエンド、アクセス制御リスト、名前付きログストリーム、環境変数 などです。 c.env を通してアクセスすることができ、個々の SDK の型があります。
これらのバインディングを使用するには、 @fastly/hono-fastly-compute から fire の代わりに buildFire を import します。bindings を定義して、 buildFire() に渡して fireを取得します。 Hono を構築する際に、 Env 型を定義するために fire.Bindings を使用してください。
// src/index.ts
import { buildFire } from '@fastly/hono-fastly-compute'
const fire = buildFire({
siteData: 'KVStore:site-data', // "site-data" という名前の KV ストアがあります
})
const app = new Hono<{ Bindings: typeof fire.Bindings }>()
app.put('/upload/:key', async (c, next) => {
// 例. KV ストア にアクセスします
const key = c.req.param('key')
await c.env.siteData.put(key, c.req.body)
return c.text(`Put ${key} successfully!`)
})
fire(app)