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 では:
brew tap azure/functions
brew install azure-functions-core-tools@4他の OS では:
2. セットアップ
TypeScript Node.js V4 プロジェクトをカレントディレクトリに作ります。
func init --typescriptホストのデフォルトプレフィックスを変更するには、 host.json のルートに以下のプロパティを追加します:
"extensions": {
"http": {
"routePrefix": ""
}
}INFO
Azure Functions でデフォルトのルートプレフィックスは /api です。 上のように変更しない場合は、 Hono の全てのルートを /api から初めてください。
Hono と Azure Functions Adapter をインストールする準備ができました:
npm i @marplex/hono-azurefunc-adapter honoyarn add @marplex/hono-azurefunc-adapter honopnpm add @marplex/hono-azurefunc-adapter honobun add @marplex/hono-azurefunc-adapter hono3. Hello World
src/app.ts を作ります:
// src/app.ts
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.text('Hello Azure Functions!'))
export default appsrc/functions/httpTrigger.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: [
//Add all your supported HTTP methods here
'GET',
'POST',
'DELETE',
'PUT',
],
authLevel: 'anonymous',
route: '{*proxy}',
handler: azureHonoHandler(honoApp.fetch),
})4. 実行
開発サーバーをローカルで実行し、 http://localhost:7071 を Web ブラウザで開きます。
npm run startyarn startpnpm startbun run start5. デプロイ
INFO
Azure にデプロイする前に、クラウドインフラストラクチャリソースを作る必要があります。 Microsoft のドキュメントを読んでください。 Create supporting Azure resources for your function
プロジェクトをビルドしてデプロイします:
npm run buildyarn buildpnpm buildbun run buildプロジェクトを自分の Azure Cloud のファンクションアプリケーションにデプロイするために、 <YourFunctionAppName> を自分のアプリの名前に変えます。
func azure functionapp publish <YourFunctionAppName>