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:
brew tap azure/functions
brew install azure-functions-core-tools@4Für andere Betriebssysteme folge diesem Link:
2. Einrichtung
Erstelle im aktuellen Ordner ein TypeScript-Node.js-V4-Projekt.
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:
"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:
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
Erstelle src/app.ts:
// src/app.ts
import { Hono } from 'hono'
const app = new Hono()
app.get('/', (c) => c.text('Hello Azure Functions!'))
export default appErstelle 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. Ausführen
Starte den Entwicklungsserver lokal. Öffne anschließend http://localhost:7071 in deinem Webbrowser.
npm run startyarn startpnpm startbun run start5. 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:
npm run buildyarn buildpnpm buildbun run buildStelle dein Projekt in der Funktions-App in Azure Cloud bereit. Ersetze <YourFunctionAppName> durch den Namen deiner App.
func azure functionapp publish <YourFunctionAppName>