Azure Functions
Azure Functions は、Microsoft Azure のサーバーレスプラットフォームです。イベントに応じてコードを実行でき、基盤となるコンピューティングリソースが自動的に管理されます。
Hono は、当初 Azure Functions 向けに設計されていませんでした。しかし、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 ブラウザーで https://:7071 にアクセスします。
npm run startyarn startpnpm startbun run start5. デプロイ
情報
Azure にデプロイするには、クラウドインフラストラクチャにいくつかのリソースを作成する必要があります。Microsoft のドキュメントの 関数の Azure リソースの作成 を参照してください
デプロイ用にプロジェクトをビルドします
npm run buildyarn buildpnpm buildbun run buildプロジェクトを Azure クラウドの関数アプリにデプロイします。<YourFunctionAppName> をアプリの名前に置き換えます。
func azure functionapp publish <YourFunctionAppName>