Zum Inhalt springen

Azure Functions ​

Azure Functions ist eine Serverless-Plattform von Microsoft Azure. Du kannst deinen Code als Reaktion auf Ereignisse ausführen; die zugrunde liegenden Computing-Ressourcen werden automatisch für dich verwaltet.

Hono wurde ursprünglich nicht für Azure Functions entwickelt, kann dort aber mit dem Azure-Functions-Adapter ebenfalls ausgeführt werden.

Der Adapter funktioniert mit Azure Functions V4 unter Node.js 18 oder höher.

1. CLI installieren ​

Um eine Azure Function zu erstellen, musst du zunächst die Azure Functions Core Tools installieren.

Unter macOS:

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

Für andere Betriebssysteme folge diesem Link:

2. Einrichtung ​

Erstelle im aktuellen Ordner ein TypeScript-Node.js-V4-Projekt.

sh
func init --typescript

Ändere das standardmäßige Routenpräfix des Hosts. Füge diese Eigenschaft zum JSON-Objekt auf der obersten Ebene von host.json hinzu:

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

Info

Das standardmäßige Routenpräfix von Azure Functions ist /api. Wenn du es nicht wie oben beschrieben änderst, müssen alle deine Hono-Routen mit /api beginnen.

Jetzt kannst du Hono und den Azure-Functions-Adapter mit folgendem Befehl installieren:

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 ​

Erstelle 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

Erstelle 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. Ausführen ​

Starte den Entwicklungsserver lokal. Öffne anschließend http://localhost:7071 in deinem Webbrowser.

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

5. Bereitstellung ​

Info

Bevor du in Azure bereitstellen kannst, musst du einige Ressourcen in deiner Cloud-Infrastruktur erstellen. Sieh dir die Microsoft-Dokumentation zum Erstellen unterstützender Azure-Ressourcen für deine Funktion an.

Erstelle einen Build des Projekts für die Bereitstellung:

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

Stelle dein Projekt in der Funktions-App in Azure Cloud bereit. Ersetze <YourFunctionAppName> durch den Namen deiner App.

sh
func azure functionapp publish <YourFunctionAppName>

Veröffentlicht unter der MIT-Lizenz.