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.
npm create hono@latest my-appyarn create hono my-apppnpm create hono my-appbun create hono@latest my-appdeno init --npm hono my-appOuvrez my-app et installez les dépendances.
cd my-app
npm icd my-app
yarncd my-app
pnpm icd my-app
bun i2. Bonjour le monde
Modifiez 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
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.
npm run startyarn startpnpm run startbun run start4. 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.
npm run deployyarn deploypnpm run deploybun run deployBindings
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.
// 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)