Azure Functions
Azure Functions 是来自 Microsoft Azure 的无服务器平台。您可以通过响应事件来运行代码,它会自动为您管理底层计算资源。
Hono 最初并非为 Azure Functions 设计。但是通过 Azure Functions Adapter 也可以在 Azure Functions 上运行。
它适用于运行在 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 的默认路由前缀。将以下属性添加到 host.json
的根 JSON 对象中:
json
"extensions": {
"http": {
"routePrefix": ""
}
}
INFO
默认的 Azure Functions 路由前缀是 /api
。如果您不按照上述方式更改它,请确保您的所有 Hono 路由都以 /api
开头。
现在您可以安装 Hono 和 Azure Functions Adapter 了,使用以下命令:
sh
npm i @marplex/hono-azurefunc-adapter hono
sh
yarn add @marplex/hono-azurefunc-adapter hono
sh
pnpm add @marplex/hono-azurefunc-adapter hono
sh
bun add @marplex/hono-azurefunc-adapter hono
3. Hello World
创建 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 start
sh
yarn start
sh
pnpm start
sh
bun run start
5. 部署
INFO
在您可以部署到 Azure 之前,您需要在您的云基础设施中创建一些资源。请访问 Microsoft 文档 为您的函数创建支持性 Azure 资源
构建项目以进行部署:
sh
npm run build
sh
yarn build
sh
pnpm build
sh
bun run build
将您的项目部署到 Azure 云中的函数应用。将 <YourFunctionAppName>
替换为您的应用名称。
sh
func azure functionapp publish <YourFunctionAppName>