Azure Functions
Azure Functions は Microsoft Azure のサーバーレスプラットフォームです。イベントに応じてコードを実行でき、基盤となるコンピューティングリソースは自動的に管理されます。
Hono はもともと Azure Functions 向けに設計されていませんが、Azure Functions アダプター を使うことで動作させられます。
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 のルート JSON オブジェクトに次のプロパティを追加してください。
"extensions": {
"http": {
"routePrefix": ""
}
}情報
Azure Functions のデフォルトのルートプレフィックスは /api です。上記のように変更しない場合は、すべての Hono ルートを /api で始めてください。
次のコマンドで Hono と Azure Functions アダプターをインストールできます。
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. 実行
開発サーバーをローカルで起動し、Web ブラウザーで http://localhost:7071 にアクセスします。
npm run startyarn startpnpm startbun run start5. デプロイ
情報
Azure にデプロイする前に、クラウドインフラストラクチャにいくつかのリソースを作成する必要があります。Microsoft のドキュメントの関数をサポートする Azure リソースの作成 を参照してください。
デプロイ用にプロジェクトをビルドします。
npm run buildyarn buildpnpm buildbun run buildAzure クラウドの関数アプリにプロジェクトをデプロイします。<YourFunctionAppName> をアプリの名前に置き換えてください。
func azure functionapp publish <YourFunctionAppName>