Azure Functions
Azure Functions 是 Microsoft Azure 提供的无服务器平台。你可以响应事件运行代码,它会自动为你管理底层计算资源。
Hono 最初并非为 Azure Functions 设计,但借助 Azure Functions Adapter,它也可以在上面运行。
它适用于运行在 Node.js 18 或更高版本上的 Azure Functions V4。
1. 安装 CLI
要创建 Azure Function,你必须首先安装 Azure Functions Core Tools。
在 macOS 上
sh
brew tap azure/functions
brew install azure-functions-core-tools@4其他操作系统请遵循此链接:
2. 设置
在当前文件夹中创建一个 TypeScript Node.js V4 项目。
sh
func init --typescript更改主机的默认路由前缀。将此属性添加到 host.json 的根 JSON 对象中:
json
"extensions": {
"http": {
"routePrefix": ""
}
}INFO
默认的 Azure Functions 路由前缀是 /api。如果你不按上述方式更改它,请确保所有 Hono 路由都以 /api 开头
现在你可以使用以下命令安装 Hono 和 Azure Functions Adapter:
sh
npm i @marplex/hono-azurefunc-adapter honosh
yarn add @marplex/hono-azurefunc-adapter honosh
pnpm add @marplex/hono-azurefunc-adapter honosh
bun add @marplex/hono-azurefunc-adapter hono3. 你好世界
创建 src/app.ts:
ts
// src/app.ts
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.text('Hello Azure Functions!'))
export default app创建 src/functions/httpTrigger.ts:
ts
// src/functions/httpTrigger.ts
import { app } from '@azure/functions'
import { azureHonoHandler } from '@marplex/hono-azurefunc-adapter'
import honoApp from '../app'
app.http('httpTrigger', {
methods: [
//在此处添加所有支持的 HTTP 方法
'GET',
'POST',
'DELETE',
'PUT',
],
authLevel: 'anonymous',
route: '{*proxy}',
handler: azureHonoHandler(honoApp.fetch),
})4. 运行
在本地运行开发服务器。然后,在 Web 浏览器中访问 http://localhost:7071。
sh
npm run startsh
yarn startsh
pnpm startsh
bun run start5. 部署
INFO
在部署到 Azure 之前,你需要在云基础设施中创建一些资源。请访问 Microsoft 文档关于 为函数创建支持的 Azure 资源
构建项目以进行部署:
sh
npm run buildsh
yarn buildsh
pnpm buildsh
bun run build将你的项目部署到 Azure 云中的函数应用。将 <YourFunctionAppName> 替换为你的应用名称。
sh
func azure functionapp publish <YourFunctionAppName>