Skip to content

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 では:

sh
brew tap azure/functions
brew install azure-functions-core-tools@4

他の OS では:

2. セットアップ ​

TypeScript Node.js V4 プロジェクトをカレントディレクトリに作ります。

sh
func init --typescript

ホストのデフォルトプレフィックスを変更するには、 host.json のルートに以下のプロパティを追加します:

json
"extensions": {
    "http": {
        "routePrefix": ""
    }
}

INFO

Azure Functions でデフォルトのルートプレフィックスは /api です。 上のように変更しない場合は、 Hono の全てのルートを /api から初めてください。

Hono と Azure Functions Adapter をインストールする準備ができました:

sh
npm i @marplex/hono-azurefunc-adapter hono
sh
yarn add @marplex/hono-azurefunc-adapter hono
sh
pnpm add @marplex/hono-azurefunc-adapter hono
sh
bun add @marplex/hono-azurefunc-adapter hono

3. Hello World ​

src/app.ts を作ります:

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 を作ります:

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 ブラウザで開きます。

sh
npm run start
sh
yarn start
sh
pnpm start
sh
bun run start

5. デプロイ ​

INFO

Azure にデプロイする前に、クラウドインフラストラクチャリソースを作る必要があります。 Microsoft のドキュメントを読んでください。 Create supporting Azure resources for your function

プロジェクトをビルドしてデプロイします:

sh
npm run build
sh
yarn build
sh
pnpm build
sh
bun run build

プロジェクトを自分の Azure Cloud のファンクションアプリケーションにデプロイするために、 <YourFunctionAppName> を自分のアプリの名前に変えます。

sh
func azure functionapp publish <YourFunctionAppName>

このドキュメントは非公式の日本語翻訳版です。
Released under the MIT License.