Zum Inhalt springen

Fastly Compute ​

Fastly Compute ist ein fortschrittliches Edge-Computing-System, das deinen Code in deiner bevorzugten Sprache im globalen Edge-Netzwerk von Fastly ausführt. Hono funktioniert auch auf Fastly Compute.

Mit der Fastly-CLI kannst du die Anwendung lokal entwickeln und mit wenigen Befehlen veröffentlichen. Die CLI wird als Teil der Vorlage automatisch lokal installiert.

1. Einrichtung ​

Für Fastly Compute steht eine Projektvorlage zur Verfügung. Starte dein Projekt mit dem Befehl „create-hono“. Wähle für dieses Beispiel die Vorlage fastly aus.

sh
npm create hono@latest my-app
sh
yarn create hono my-app
sh
pnpm create hono my-app
sh
bun create hono@latest my-app
sh
deno init --npm hono my-app

Wechsle nach my-app und installiere die Abhängigkeiten.

sh
cd my-app
npm i
sh
cd my-app
yarn
sh
cd my-app
pnpm i
sh
cd my-app
bun i

2. Hello World ​

Bearbeite src/index.ts:

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

Wenn du fire (oder buildFire()) aus @fastly/hono-fastly-compute' auf der obersten Ebene deiner Anwendung verwendest, eignet sich Hono aus 'hono' besser als aus 'hono/quick'. Denn fire veranlasst den Router, seine internen Daten bereits während der Initialisierung der Anwendung aufzubauen.

3. Ausführen ​

Starte den Entwicklungsserver lokal. Öffne anschließend http://localhost:7676 in deinem Webbrowser.

sh
npm run start
sh
yarn start
sh
pnpm run start
sh
bun run start

4. Bereitstellung ​

Um deine Anwendung zu bauen und in deinem Fastly-Konto bereitzustellen, führe den folgenden Befehl aus. Bei der ersten Bereitstellung wirst du aufgefordert, einen neuen Dienst in deinem Konto zu erstellen.

Wenn du noch kein Konto hast, musst du ein Fastly-Konto erstellen.

sh
npm run deploy
sh
yarn deploy
sh
pnpm run deploy
sh
bun run deploy

Bindings ​

In Fastly Compute kannst du Fastly-Plattformressourcen wie KV Stores, Config Stores, Secret Stores, Backends, Zugriffssteuerungslisten, benannte Log-Streams und Umgebungsvariablen binden. Über c.env kannst du auf sie zugreifen; sie erhalten ihre jeweiligen SDK-Typen.

Um diese Bindings zu verwenden, importiere buildFire statt fire aus @fastly/hono-fastly-compute. Definiere deine Bindings und übergib sie an buildFire(), um fire zu erhalten. Verwende dann fire.Bindings, um beim Erstellen von Hono deinen Typ Env zu definieren.

ts
// src/index.ts
import { buildFire } from '@fastly/hono-fastly-compute'

const fire = buildFire({
  siteData: 'KVStore:site-data', // I have a KV Store named "site-data"
})

const app = new Hono<{ Bindings: typeof fire.Bindings }>()

app.put('/upload/:key', async (c, next) => {
  // e.g., Access the KV Store
  const key = c.req.param('key')
  await c.env.siteData.put(key, c.req.body)
  return c.text(`Put ${key} successfully!`)
})

fire(app)

Veröffentlicht unter der MIT-Lizenz.