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 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. 実行
開発サーバーをローカルで実行します。次に、Web ブラウザーで https://#:7071
にアクセスします。
npm run start
yarn start
pnpm start
bun run start
5. デプロイ
情報
Azure にデプロイするには、クラウドインフラストラクチャにいくつかのリソースを作成する必要があります。Microsoft のドキュメントの 関数の Azure リソースの作成 を参照してください
デプロイ用にプロジェクトをビルドします
npm run build
yarn build
pnpm build
bun run build
プロジェクトを Azure クラウドの関数アプリにデプロイします。<YourFunctionAppName>
をアプリの名前に置き換えます。
func azure functionapp publish <YourFunctionAppName>