Skip to content

Fastly Compute ​

Fastly Compute 是一个先进的边缘计算系统,它可以在 Fastly 的全球边缘网络上以您喜欢的语言运行您的代码。Hono 也可以在 Fastly Compute 上运行。

您可以使用 Fastly CLI 在本地开发应用程序并通过几条命令发布它,该 CLI 作为模板的一部分会自动安装在本地。

1. 设置 ​

Fastly Compute 的入门模板可用。 使用 "create-hono" 命令开始您的项目。 为本示例选择 fastly 模板。

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

进入 my-app 并安装依赖项。

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

2. 你好世界 ​

编辑 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

当在应用程序的顶层使用来自 @fastly/hono-fastly-compute' 的 fire(或 buildFire())时,适合使用来自 'hono' 的 Hono 而不是 'hono/quick',因为 fire 会导致其路由器在应用程序初始化阶段构建其内部数据。

3. 运行 ​

在本地运行开发服务器。然后,在您的 Web 浏览器中访问 http://localhost:7676。

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

4. 部署 ​

要构建并将应用程序部署到您的 Fastly 账户,请输入以下命令。首次部署应用程序时,系统会提示您在账户中创建新服务。

如果您还没有账户,必须 创建您的 Fastly 账户。

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

绑定 ​

在 Fastly Compute 中,您可以绑定 Fastly 平台资源,例如 KV Stores、Config Stores、Secret Stores、Backends、Access Control Lists、Named Log Streams 和环境变量。您可以通过 c.env 访问它们,并将拥有它们各自的 SDK 类型。

要使用这些绑定,请从 @fastly/hono-fastly-compute 导入 buildFire 而不是 fire。定义您的 绑定 并将它们传递给 buildFire() 以获取 fire。然后在构建 Hono 时使用 fire.Bindings 来定义您的 Env 类型。

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

const fire = buildFire({
  siteData: 'KVStore:site-data', // 我有一个名为 "site-data" 的 KV Store
})

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

app.put('/upload/:key', async (c, next) => {
  // 例如,访问 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)