Aller au contenu

Fastly Compute ​

Fastly Compute est un système avancé de calcul edge qui exécute votre code, dans votre langage préféré, sur le réseau edge mondial de Fastly. Hono fonctionne aussi sur Fastly Compute.

Vous pouvez développer l'application localement et la publier en quelques commandes avec la CLI Fastly, installée automatiquement en local par le modèle.

1. Configuration ​

Un modèle de démarrage est disponible pour Fastly Compute. Créez votre projet avec la commande « create-hono ». Sélectionnez le modèle fastly pour cet exemple.

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

Ouvrez my-app et installez les dépendances.

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

2. Bonjour le monde ​

Modifiez 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

Lorsque vous utilisez fire (ou buildFire()) de @fastly/hono-fastly-compute' au niveau supérieur de votre application, il convient d'utiliser Hono depuis 'hono' plutôt que 'hono/quick', car fire amène son routeur à construire ses données internes pendant la phase d'initialisation de l'application.

3. Exécution ​

Démarrez le serveur de développement localement. Ensuite, ouvrez http://localhost:7676 dans votre navigateur web.

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

4. Déploiement ​

Pour compiler et déployer votre application sur votre compte Fastly, saisissez la commande suivante. Lors du premier déploiement, vous serez invité à créer un nouveau service dans votre compte.

Si vous n'avez pas encore de compte, vous devez créer votre compte Fastly.

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

Bindings ​

Dans Fastly Compute, vous pouvez associer des ressources de la plateforme Fastly : KV Stores, Config Stores, Secret Stores, Backends, listes de contrôle d'accès, flux de journaux nommés et variables d'environnement. Elles sont accessibles via c.env et disposent chacune de leurs types SDK.

Pour utiliser ces bindings, importez buildFire plutôt que fire depuis @fastly/hono-fastly-compute. Définissez vos bindings et passez-les à buildFire() pour obtenir fire. Utilisez ensuite fire.Bindings pour définir votre type Env lors de la création de Hono.

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)

Publié sous licence MIT.