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 hono
yarn add @marplex/hono-azurefunc-adapter hono
pnpm add @marplex/hono-azurefunc-adapter hono
bun add @marplex/hono-azurefunc-adapter hono
3. 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 app
src/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 start
yarn start
pnpm start
bun run start
5. デプロイ
INFO
Azure にデプロイする前に、クラウドインフラストラクチャリソースを作る必要があります。 Microsoft のドキュメントを読んでください。 Create supporting Azure resources for your function
プロジェクトをビルドしてデプロイします:
npm run build
yarn build
pnpm build
bun run build
プロジェクトを自分の Azure Cloud のファンクションアプリケーションにデプロイするために、 <YourFunctionAppName>
を自分のアプリの名前に変えます。
func azure functionapp publish <YourFunctionAppName>